Beim Auflisten des Inhalts eines Verzeichnisses mit ls
Befehl haben Sie vielleicht bemerkt, dass die Größe der Verzeichnisse fast immer 4096 Bytes (4 KB) beträgt. Das ist die Größe des Speicherplatzes auf der Festplatte, der verwendet wird, um die Metainformationen für das Verzeichnis zu speichern, nicht das, was es enthält.
Der Befehl, den Sie verwenden sollten, um die tatsächliche Größe eines Verzeichnisses zu erhalten, ist du
, was die Abkürzung für „Disk Usage“ ist.
Die Größe eines Verzeichnisses abrufen #
Der du
Der Befehl zeigt den Speicherplatz an, der von den angegebenen Dateien oder Verzeichnissen verwendet wird. Wenn der angegebene Pfad ein Verzeichnis ist, du
fasst die Festplattennutzung jedes Unterverzeichnisses in diesem Verzeichnis zusammen. Wenn kein Pfad angegeben ist, du
meldet die Festplattennutzung des aktuellen Arbeitsverzeichnisses.
Wenn es ohne Optionen aufgerufen wird, du
zeigt die Festplattennutzung des angegebenen Verzeichnisses und jedes seiner Unterverzeichnisse in Bytes an.
Normalerweise möchten Sie den vom Verzeichnis belegten Speicherplatz in einem für Menschen lesbaren Format anzeigen. Zum Beispiel, um die Gesamtgröße von /var
zu erhalten Verzeichnis führen Sie den folgenden Befehl aus:
sudo du -sh /var
Die Ausgabe sieht in etwa so aus:
85G /var
Lassen Sie uns den Befehl und seine Argumente erklären:
- Der Befehl beginnt mit
sudo
weil die meisten Dateien und Verzeichnisse in/var
Verzeichnis gehören dem Root-Benutzer und sind für normale Benutzer nicht lesbar. Wenn Siesudo
weglassen derdu
Der Befehl gibt „du:Verzeichnis kann nicht gelesen werden“ aus. s
- Nur die Gesamtgröße des angegebenen Verzeichnisses anzeigen, keine Gesamtdateigröße für Unterverzeichnisse anzeigen.h
- Druckgrößen in einem für Menschen lesbaren Format (h
)./var
- Der Pfad zu dem Verzeichnis, in dem Sie die Größe abrufen möchten.
Was ist, wenn Sie die Festplattennutzung der Unterverzeichnisse der ersten Ebene anzeigen möchten? Sie haben zwei Möglichkeiten. Die erste ist die Verwendung des Sternchensymbols (*
) wie unten gezeigt, was bedeutet „alles abgleichen, was nicht mit einem Punkt beginnt (.
)“. Das -c
Option teilt du
mit um eine Gesamtsumme aller Größen zu drucken:
sudo du -shc /var/*
24K /var/db
4.0K /var/empty
4.0K /var/games
77G /var/lib
4.0K /var/local
0 /var/lock
3.3G /var/log
0 /var/mail
4.0K /var/opt
0 /var/run
196K /var/spool
28K /var/tmp
85G total
Eine andere Möglichkeit, einen Bericht über die Festplattennutzung der Unterverzeichnisse der ersten Ebene zu erhalten, ist die Verwendung von --max-depth
Möglichkeit:
sudo du -h --max-depth=1 /var
77G /var/lib
24K /var/db
4.0K /var/empty
4.0K /var/local
4.0K /var/opt
196K /var/spool
4.0K /var/games
3.3G /var/log
5.0G /var/cache
28K /var/tmp
85G /var
85G total
Standardmäßig ist der du
Der Befehl zeigt den vom Verzeichnis oder der Datei belegten Speicherplatz an. Um die scheinbare Größe eines Verzeichnisses zu ermitteln, verwenden Sie --apparent-size
Möglichkeit. Die „scheinbare Größe“ einer Datei gibt an, wie viele Daten sich tatsächlich in der Datei befinden.
sudo du -sh --apparent-size /var
Wenn Sie ein Verzeichnis über SCP, Rsync. oder SFTP übertragen, entspricht die über das Netzwerk übertragene Datenmenge der scheinbaren Größe der Dateien. Aus diesem Grund wird die Größe des Speicherplatzes auf der auf der Quelle verwendeten Festplatte mit du
angezeigt (ohne --apparent-size
) stimmt nicht mit der Größe auf dem Ziel überein.
Der du
Der Befehl kann auch mit anderen Befehlen mit Pipes kombiniert werden.
Zum Beispiel, um die 5 größten Verzeichnisse innerhalb von /var
zu drucken Verzeichnis würden Sie die Ausgabe von du
weiterleiten zum sort
Befehl, um die Verzeichnisse nach ihrer Größe zu sortieren und die Ausgabe dann an head
zu leiten Befehl, der nur die obersten 5 Verzeichnisse druckt:
sudo du -h /var/ | sort -rh | head -5
85G /var/
77G /var/lib
75G /var/lib/libvirt/images
75G /var/lib/libvirt
5.0G /var/cache/pacman/pkg
Schlussfolgerung #
Unter Linux können Sie die Größe eines Verzeichnisses mit du
ermitteln Befehl.
Wenn Sie Fragen oder Anmerkungen haben, hinterlassen Sie unten einen Kommentar.