GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überprüfen der Verzeichnisgröße mit dem Befehl du unter Linux

Die Größe einer Datei zu kennen ist unter Linux einfach. Alles, was Sie tun müssen, ist, die Optionen -l und -h mit dem Befehl ls zu verwenden, und es zeigt Ihnen die Dateigröße zusammen mit Dateiberechtigungen und Dateizeitstempeln. Hier ist eine Beispielausgabe:

ls -lh tutorials
total 56K
-rwxr--r-- 1 abhishek abhishek  456 Mar  6 16:21 agatha.txt
-rw-r--r-- 1 abhishek abhishek    0 Apr 16 19:53 a.t
-rwxr--r-- 1 abhishek abhishek  140 Mar 22 16:41 bash_script.sh
-rw-rw-r-- 1 abhishek abhishek   95 Feb 11 13:12 cpluplus.cpp
-rw-r--r-- 1 abhishek abhishek  163 Apr 13 15:07 prog.py
-rw-r--r-- 1 abhishek abhishek  19K Mar 18 18:46 services
-rw-r--r-- 1 abhishek abhishek  356 Dec 11 21:35 sherlock.txt
-rwxrw-r-- 1 abhishek abhishek   72 Jan 21 15:44 sleep.sh
drwxr-xr-x 3 abhishek abhishek 4.0K Jan  4 20:10 target
drwxr-xr-x 2 abhishek abhishek 4.0K Apr 16 18:27 test_dir
-rw-rw-r-- 1 abhishek abhishek   55 Mar 11 16:28 text-file.txt

Sie würden etwas Seltsames bemerken. Der Befehl ls zeigt die Größe aller Verzeichnisse mit 4 KB an. Das kann doch nicht stimmen, oder? Natürlich nicht.

Die Größe eines Ordners oder Verzeichnisses kann unter Linux mit dem Befehl du ermittelt werden. du steht hier für Disk Usage. Ich werde die Logik hinter der Größe von 4,0 KB für die Verzeichnisse später in diesem Tutorial erläutern. Konzentrieren wir uns im Moment darauf, die Verzeichnisgröße zu ermitteln.

Wenn Sie die Verzeichnisgröße unter Linux überprüfen möchten, können Sie diesen Befehl verwenden:

du -sh path_to_directory

Dadurch erhalten Sie die Gesamtgröße des besagten Verzeichnisses in menschenlesbarem Format, d. h. KB, MB oder GB.

Verwenden des Befehls du zum Abrufen der Verzeichnisgröße in Linux

Ich zeige Ihnen verschiedene Beispiele für den Befehl du, mit dem Sie die Verzeichnisgröße und die Festplattenauslastung überprüfen können.

Die Syntax für den Befehl du ist ziemlich einfach.

du [option] path_to_file_or_directory

Sehen wir uns an, wie Sie den Befehl du verwenden, um die Informationen zur Datei- und Verzeichnisgröße unter Linux abzurufen.

Hier ist die Struktur des „Tutorials“-Verzeichnisses, das ich in diesem Tutorial verwenden werde:

tree tutorials
.
├── agatha.txt
├── bash_script.sh
├── cpluplus.cpp
├── prog.py
├── services
├── sherlock.txt
├── sleep.sh
├── target
│   ├── agatha.txt
│   ├── file1.txt
│   └── past
│       ├── file1.txt
│       ├── file2.txt
│       └── source1
│           └── source2
│               └── file1.txt
├── test_dir
│   ├── c.xyz
│   ├── myzip1.zip
│   └── myzip2.zip
└── text-file.txt
5 directories, 16 files

Wenn ich jetzt den Befehl du im Verzeichnis „Tutorials“ ausführe, zeigt er die Größen aller Unterverzeichnisse an und summiert dann die Größen aller Unterverzeichnisse und der Dateien am Ende davon.

du tutorials

Dies ist die Ausgabe für das Tutorials-Verzeichnis.

8 tutorials/target/past/source1/source2
12 tutorials/target/past/source1
24 tutorials/target/past
36 tutorials/target
12 tutorials/test_dir
100 tutorials

Festplattengröße im menschenlesbaren Format anzeigen

Das Problem mit der obigen Ausgabe des Befehls du besteht nun darin, dass Sie nicht wissen, ob die 100 100 KB oder 100 MB oder 100 GB ist. Keine Sorge, Sie können dieses Verhalten ändern und die Verzeichnisgröße mit der Option -h.

in einem für Menschen lesbaren Format anzeigen
du -h tutorials

Hier ist die jetzt viel einfacher zu lesende Ausgabe:

8.0K tutorials/target/past/source1/source2
12K tutorials/target/past/source1
24K tutorials/target/past
36K tutorials/target
12K tutorials/test_dir
100K tutorials

Sie können die Option -m für MB und die Option -k für KB anstelle von -h verwenden. Aber selbst wenn die Größe weniger als 1 MB beträgt, wird die Größe immer als 1 MB angezeigt. Aus diesem Grund ist die Verwendung der Option -h immer eine bessere Option.

Zeige auch die Größe der Dateien

Haben Sie bemerkt, dass das Tutorials-Verzeichnis mehrere Dateien enthält, diese jedoch nicht in der Ausgabe des Befehls du angezeigt werden? Das liegt daran, dass, obwohl die Dateigröße in der Gesamtsumme der Verzeichnisgröße gezählt wird, die Dateien nicht standardmäßig angezeigt werden.

Um die Größe der Dateien zusammen mit den Verzeichnissen anzuzeigen, können Sie die Option -a verwenden. Es wäre besser, wenn Sie es mit der Option -h kombinieren, um die Größen in einem für Menschen lesbaren Format zu erhalten.

du -ah tutorials

Jetzt zeigt die Ausgabe die Dateien zusammen mit den Verzeichnissen:

4.0K tutorials/cpluplus.cpp
4.0K tutorials/prog.py
20K tutorials/services
4.0K tutorials/text-file.txt
4.0K tutorials/bash_script.sh
4.0K tutorials/target/file1.txt
4.0K tutorials/target/past/file2.txt
4.0K tutorials/target/past/file1.txt
4.0K tutorials/target/past/source1/source2/file1.txt
8.0K tutorials/target/past/source1/source2
12K tutorials/target/past/source1
24K tutorials/target/past
4.0K tutorials/target/agatha.txt
36K tutorials/target
4.0K tutorials/sherlock.txt
4.0K tutorials/test_dir/myzip1.zip
4.0K tutorials/test_dir/myzip2.zip
0 tutorials/test_dir/c.xyz
12K tutorials/test_dir
4.0K tutorials/sleep.sh
4.0K tutorials/agatha.txt
100K tutorials

Bonus-Tipp:Löse das Rätsel von 4 KB

Beachten Sie, dass die Größen möglicherweise abgerundet erscheinen. Ich meine, alle Größen liegen im Vielfachen von 4K. Abgesehen von den leeren Dateien sind alle Dateien mindestens 4 KB groß. Ist das ein Zufall? Nicht wirklich.

Auch wenn der Text der Datei in Byte angegeben ist, beträgt die minimale Dateigröße 4 KB, da dies die minimale Blockgröße des Dateisystems ist. Unabhängig von der Größe des Textes in der Datei wird ihr mindestens ein Block von 4 KB Speicherplatz auf der Festplatte zugewiesen.

Und da die Speicherblöcke 4 KB groß sind, werden Sie immer ein Vielfaches von 4 KB sehen.

Nun, Sie wissen wahrscheinlich bereits, dass in UNIX/Linux alles eine Datei ist. Ein Verzeichnis ist im Wesentlichen eine Datei, die Informationen über den gesamten Speicherort aller Dateien enthält, die sie „enthält“.

Wenn Sie also den Befehl ls verwenden, behandelt er das Verzeichnis als eine Datei und zeigt seine Größe an, die einem Speicherblock entspricht, und somit beträgt die angezeigte Größe 4 KB.

Zeige nur die Gesamtgröße des Verzeichnisses in Linux

Wenn Sie die Ausgabe des Befehls du zu ausführlich finden und nur die Gesamtgröße des Verzeichnisses in einem für Menschen lesbaren Format sehen möchten, können Sie die Summenoption -s verwenden.

du -sh tutorials

Jetzt wird die Ausgabe nur eine Zeile sein, die die Gesamtgröße des Verzeichnisses zeigt:

100K tutorials

Zeige die Festplattennutzung durch mehrere Verzeichnisse

Es ist nicht so, dass Sie darauf beschränkt sind, die Größe von jeweils nur einem Verzeichnis zu überprüfen. Sie können im Befehl du mehrere Verzeichnisse angeben.

Zum Beispiel werde ich hier die Optionen -sh verwenden, um die Gesamtgröße von zwei Verzeichnissen anzuzeigen.

du -sh tutorials/target/ tutorials/test_dir

Die Ausgabe zeigt die Größe beider Verzeichnisse einzeln an:

36K tutorials/target/
12K tutorials/test_dir

Zeige die Gesamtsumme aller Verzeichnisgrößen

Im obigen Beispiel haben Sie die Gesamtgröße beider Verzeichnisse einzeln gesehen. Sie können die Option -c verwenden, um eine Gesamtsumme für die Summe aller Verzeichnisse in der Ausgabe anzuzeigen.

du -csh tutorials/target/ tutorials/test_dir

Wie Sie in der Ausgabe sehen können, summiert es die Größen und gibt Ihnen die Gesamtsumme:

36K tutorials/target/
12K tutorials/test_dir
48K total

Zeige nicht die Größe der Unterverzeichnisse

Was ist, wenn Sie die Größe aller Verzeichnisse im aktuellen Ordner überprüfen möchten? Standardmäßig geht der Befehl du in die Unterverzeichnisse aller Verzeichnisse und die Ausgabe wird schwierig herauszufinden, besonders wenn Sie zu viele verschachtelte Verzeichnisse haben.

Was Sie tun können, ist, die zu prüfende Tiefe zu definieren, während die Größen für die Unterverzeichnisse angezeigt werden.

Wenn Sie also die Größe der Verzeichnisse im aktuellen Ordner sehen möchten, können Sie die Tiefe wie folgt auf 1 setzen:

du -h --max-depth=1 tutorials

Jetzt zeigt die Ausgabe nur die Unterverzeichnisse im aktuellen Verzeichnis. Weiter geht es nicht.

36K tutorials/target
12K tutorials/test_dir
100K tutorials

Wenn Sie sich nicht an die –max-Tiefe erinnern können, können Sie die Kurzform -d Flag verwenden:

du -h -d1 tutorials

Schließen Sie bestimmte Dateitypen bei der Berechnung der Festplattengröße aus

Der Befehl du gibt Ihnen die Möglichkeit, bestimmte Dateitypen auszuschließen. Sie können Regex zusammen mit der Option –exclude verwenden.

Um beispielsweise die Summe aller Dateien außer Dateien mit der Erweiterung txt zu berechnen, kann dieser Befehl verwendet werden:

du -h --exclude="*.txt" tutorials

Und wenn Sie jetzt die Ausgabe sehen, wäre die Gesamtgröße des Verzeichnisses reduziert worden:

4.0K tutorials/target/past/source1/source2
8.0K tutorials/target/past/source1
12K tutorials/target/past
16K tutorials/target
12K tutorials/test_dir
68K tutorials

Bonus-Tipp:Das größte Unterverzeichnis finden

Sie können die Ausgabe des du-Befehls mit dem sort-Befehl kombinieren, um die Verzeichnisse nach ihrer Größe zu sortieren.

du -h --max-depth=1 tutorials | sort -rh

Dadurch werden die Verzeichnisse in umgekehrter Reihenfolge ihrer Größe angezeigt, d. h. das größte Verzeichnis ganz oben.

100K tutorials
36K tutorials/target
12K tutorials/test_dir

Das oberste ist natürlich das Verzeichnis selbst, aber das zweite gibt Ihnen das größte Unterverzeichnis.

Sie können weiter mit dem Head-Befehl oder dem Tail-Befehl kombinieren, um die x größte Datei oder die kleinsten Dateien/Verzeichnisse zu erhalten.

Fanden Sie es nützlich?

Ich habe versucht, die grundlegende Verwendung des Befehls du unter Linux zu erklären. Aber wie immer gibt es viele weitere Optionen für den Befehl, die Sie auf seiner Manpage finden können. Wenn Sie nur die Größe eines Verzeichnisses in Linux herausfinden wollten, sollte Ihnen dieses Tutorial genügend Informationen geben. Wenn Sie den Speicherplatz unter Linux überprüfen möchten, verwenden Sie den Befehl df.

Hat dir das Tutorial gefallen? Hat es dir geholfen? Lass es mich in den Kommentaren wissen. Wenn Sie einen anderen coolen Tipp zu du command haben, warum teilen Sie ihn nicht mit uns?


Linux
  1. So erhalten Sie die Größe eines Verzeichnisses in Linux

  2. Linux Tee-Befehl mit Beispielen

  3. JQ-Befehl in Linux mit Beispielen

  4. Die einfachsten Linux-Befehle mit 10 Beispielen

  5. Linux-Befehl zum Verschieben des Verzeichnisses

Echo-Befehl in Linux mit Beispielen

Linux-IP-Befehl mit Beispielen

Du-Befehl unter Linux

15 Linux-PS-Befehl mit Beispielen

Linux-CD-Befehl mit Beispielen

mv-Befehl unter Linux