Das du (Disk Usage) ist der Befehl, der unter Linux verwendet wird, um die Verzeichnisgröße einschließlich ihrer anderen Inhalte sowie die Größe einzelner Dateien zu überprüfen.
Wenn Dateien und Verzeichnisse anfingen, eine große Menge Speicherplatz auf Ihren Festplatten zu verbrauchen, dann ist du der beste Befehl, um festzustellen, welche Verzeichnisse oder Dateien dies verursachen.
In diesem Tutorial lernen wir, wie man den Befehl du unter Linux verwendet, um die Festplattennutzung (Dateien oder Verzeichnisse) zu überprüfen.
Du-Befehl &Syntax
Die folgende Zeile zeigt die Syntax des Befehls du:
du [options] [file or directory name]
Standardmäßig zeigt es ohne Optionen die Festplattennutzung der angegebenen Datei oder des Verzeichnisses und für jedes der Unterverzeichnisse in Byte an. Wenn kein Datei- oder Verzeichnisname angegeben ist, zeigt das Kommando du die Festplattennutzung des aktuellen Arbeitsverzeichnisses an.
# du /boot
2508 /boot/grub2/fonts
3068 /boot/grub2/i386-pc
5592 /boot/grub2
4 /boot/efi/EFI/centos
8 /boot/efi/EFI
12 /boot/efi
16 /boot/loader/entries
20 /boot/loader
152440 /boot
Du kommandierst mit -a
Option gibt die Festplattennutzung aller Dateien im Verzeichnis aus.
# du -a /boot
7920 /boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64
3752 /boot/System.map-4.18.0-147.5.1.el8_1.x86_64
4 /boot/grub2/device.map
4 /boot/grub2/grub.cfg
4 /boot/grub2/grubenv
2504 /boot/grub2/fonts/unicode.pf2
2508 /boot/grub2/fonts
8 /boot/grub2/i386-pc/cs5536.mod
4 /boot/grub2/i386-pc/gcry_rsa.mod
8 /boot/grub2/i386-pc/lsacpi.mod
52 /boot/grub2/i386-pc/gcry_camellia.mod
4 /boot/grub2/i386-pc/cpio_be.mod
......
152440 /boot
Sie können sehen, dass die Gesamtgröße am Ende des Befehls ausgegeben wird, wobei „152440“ die Gesamtgröße (in Bytes) des Verzeichnisses „/boot“ ist.
Gesamtgröße des angegebenen Verzeichnisses erhalten
Um die Gesamtgröße eines bestimmten Verzeichnisses anzuzeigen, müssen Sie die Option -s verwenden, es werden jedoch keine Unterverzeichnisse gemeldet. Das folgende Beispiel zeigt die Gesamtgröße des Verzeichnisses „/boot“.
# du -s /boot
152440 /boot
Sie können die gesamte Festplattennutzung aus mehreren Verzeichnissen wie folgt drucken:
# du -s /boot /var
152440 /boot
332168 /var
Für Menschen lesbares Format
Bisher haben wir gesehen, dass die Festplattengröße in Bytes angezeigt wurde, die kein menschenlesbares Format haben. Um die Ausgabe in Kilobyte (K), Megabyte (M) und Gigabyte (G) auszugeben, müssen wir -h
verwenden Option.
# du -h /boot
2.5M /boot/grub2/fonts
3.0M /boot/grub2/i386-pc
5.5M /boot/grub2
4.0K /boot/efi/EFI/centos
8.0K /boot/efi/EFI
12K /boot/efi
16K /boot/loader/entries
20K /boot/loader
149M /boot
Der --si
Option ist wie -h
Option, aber es verwendet Potenzen von 1000 statt 1024.
# du --si /boot
2.6M /boot/grub2/fonts
3.2M /boot/grub2/i386-pc
5.8M /boot/grub2
4.1k /boot/efi/EFI/centos
8.2k /boot/efi/EFI
13k /boot/efi
17k /boot/loader/entries
21k /boot/loader
157M /boot
Verwenden Sie den folgenden Befehl, um die Gesamtgröße eines bestimmten Verzeichnisses in einem für Menschen lesbaren Format zu erhalten, das sehr häufig als Befehl du verwendet wird:
# du -sh /boot
149M /boot
Gesamtgesamtgröße kombinieren
Dies ist sehr nützlich, wenn Sie die Gesamtgröße mehrerer Verzeichnisse kombinieren möchten. Das folgende Beispiel du command Combine (-c
) die Gesamtfestplattengröße der angegebenen (-s
) '/boot' und '/var' Verzeichnis und drucke in der letzten Zeile in menschenlesbarem Format (-h
):
# du -csh /boot/ /var
149M /boot/
317M /var
466M total
Individuelle Größe aller Dateien und Verzeichnisse anzeigen
Mit Platzhaltern (*) können wir die individuelle Größe jeder Datei und jedes Verzeichnisses drucken und dann die Gesamtgröße kombinieren, um sie in der letzten Zeile zu drucken.
# du -csh /boot/*
184K /boot/config-4.18.0-147.5.1.el8_1.x86_64
180K /boot/config-4.18.0-80.7.1.el8_0.x86_64
12K /boot/efi
0 /boot/grub
5.5M /boot/grub2
53M /boot/initramfs-0-rescue-3e729c2d7c094902af0333ce40564ffe.img
23M /boot/initramfs-4.18.0-147.5.1.el8_1.x86_64.img
23M /boot/initramfs-4.18.0-80.7.1.el8_0.x86_64.img
16M /boot/initramfs-4.18.0-80.7.1.el8_0.x86_64kdump.img
20K /boot/loader
3.7M /boot/System.map-4.18.0-147.5.1.el8_1.x86_64
3.6M /boot/System.map-4.18.0-80.7.1.el8_0.x86_64
7.6M /boot/vmlinuz-0-rescue-3e729c2d7c094902af0333ce40564ffe
7.8M /boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64
7.6M /boot/vmlinuz-4.18.0-80.7.1.el8_0.x86_64
149M total
Du-Befehl mit Musterabgleich
Mit dem Befehl du können Sie einen Musterabgleich durchführen. Im folgenden Befehl wird gezeigt, wie die Festplattengröße aller Verzeichnisse ermittelt wird, die mit „bo“ beginnen.
# du -sch /bo*
149M /boot
217M /bootstrap
366M total
Den Befehl verwenden, um die scheinbare Größe zu erhalten
Die --apparent-size
Option druckt scheinbare Größen (tatsächliche Datenmenge in der Datei) statt Festplattennutzung.
# du --apparent-size /boot
2505 /boot/grub2/fonts
2544 /boot/grub2/i386-pc
5057 /boot/grub2
4 /boot/efi/EFI/centos
8 /boot/efi/EFI
12 /boot/efi
6 /boot/loader/entries
10 /boot/loader
151852 /boot
Überprüfen Sie die Verzeichnisgröße, die feste Links enthält
Mit dem -l
oder --count-links
Option werden die Größen mehrfach gezählt, wenn sie fest verknüpft sind. Standardmäßig werden die Hardlinks nicht angezeigt.
Zum Beispiel
# ls -li
total 648
755150 -rw-r--r-- 1 root root 4719 Apr 19 00:46 file1
755152 -rw-r--r-- 2 root root 312519 Apr 19 00:47 file2
755152 -rw-r--r-- 2 root root 312519 Apr 19 00:47 file2.hard
755153 lrwxrwxrwx 1 root root 19 Apr 19 00:57 file2.soft -> /etc/sysconfig/init
Hier ist file2.hard der Hardlink für file2. Beachten Sie nun die Ausgabe mit -l
und ohne.
# du -ah
4.0K ./file2.soft
316K ./file2
12K ./file1
340K .
# du -ahl
4.0K ./file2.soft
316K ./file2
12K ./file1
316K ./file2.hard
656K .
Das Standardverhalten für symbolische Links besteht darin, sie nicht zu dereferenzieren. Zum Dereferenzieren symbolischer Links -L
oder --dereference
Option verwendet wird
# du -ahL
8.0K ./file2.soft
316K ./file2
12K ./file1
344K .
(Beachten Sie, dass sich die Größe für file2.soft jetzt geändert hat)
Das -P
oder --no-dereference
Option dereferenziert diese symbolischen Links nicht (was das Standardverhalten ist, wie oben angegeben).
Festplattennutzung in Unterverzeichnissen der Ebene 'N' anzeigen
Diese Option weist den Befehl an, die Unterverzeichnisse und ihre Größe bis zu unserer gewünschten Tiefe aufzulisten.
Das folgende Beispiel listet beispielsweise nur die Verzeichnisse der ersten Ebene in der aktuellen Verzeichnisstruktur und deren Größe auf. Auch der gesamte Flächenverbrauch wird hier ausgewiesen. Falls wir --max-depth=
setzen auf Null, dann listet der Befehl du keine Unterverzeichnisse auf und meldet nur die Größe des ausgewählten Verzeichnisses.
# du --max-depth=1 -h /boot/
7.1M /boot/grub
110M /boot/
Du-Befehl zum Ausschließen von Dateien
Der Befehl du kann bestimmte Verzeichnisse mit --exclude
ausschließen Möglichkeit. Im folgenden Beispiel habe ich das Verzeichnis „grub2“ ausgeschlossen:
# du --exclude=grub2 /boot/
4 /boot/efi/EFI/centos
8 /boot/efi/EFI
12 /boot/efi
16 /boot/loader/entries
20 /boot/loader
146848 /boot/
Unten sehen Sie zwei Beispiele, die Ihnen zeigen, wie Sie '*.obj'- oder '*.jpg'-Dateien ausschließen.
# du -h –exclude=’*.obj’
# du -h –exclude=’*.jpg’
Verwenden Sie den Befehl du, um die Änderungszeit auszudrucken
Die Änderungszeit von Dateien und/oder Verzeichnissen (bzw. von Dateien/Verzeichnissen in den Unterverzeichnissen) kann mit --time
angezeigt werden Option.
# du /boot/ --time
4 2017-03-23 15:03 /boot/grub/locale
2348 2017-03-23 15:03 /boot/grub/fonts
2480 2017-03-23 15:03 /boot/grub/i386-pc
7212 2017-04-05 08:31 /boot/grub
112180 2017-04-05 08:31 /boot/
Verwende du mit anderen Befehlen
Der Du-Befehl kann mit anderen Befehlen unter Verwendung von Pipes (|) kombiniert werden. Sehen wir uns einige Beispiele an
Wenn wir die Top 3 Verzeichnisse nach Größe im aktuellen Arbeitsverzeichnis finden wollen:
# du -skh * | sort -nr | head -3
386M lib
252M share
154M lib64
Alle Dateien und Verzeichnisse nach Größe sortiert anzeigen:
# du -sk * | sort -n
12160 libexec
37552 sbin
58900 bin
70048 src
157456 lib64
257492 share
394504 lib
Schlussfolgerung
In diesem Lernprogramm haben wir gelernt, wie Sie den Befehl du unter Linux verwenden, um die Festplattennutzung für Dateien und Verzeichnisse zu schätzen. Ich hoffe, Sie hatten Spaß beim Lesen und hinterlassen Sie bitte Ihre Vorschläge im Kommentarbereich unten.