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

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

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 Sie sudo weglassen der du 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.


Linux
  1. So finden Sie die älteste Datei in einem Verzeichnisbaum in Linux

  2. So finden Sie die Socket-Puffergröße von Linux

  3. Wie erhalte ich das absolute Verzeichnis einer Datei in Bash?

  4. Wie erhalte ich die tatsächliche Verzeichnisgröße (aus du)?

  5. Wie erhalte ich die physische Größe einer Datei unter Linux?

So ermitteln Sie die Größe eines Verzeichnisses in Linux

So ermitteln Sie die Gesamtgröße eines Verzeichnisses in Linux

So erhalten Sie die Anzahl der Prozessoren / Kerne in Linux

So kopieren Sie das Verzeichnis unter Linux

So migrieren Sie das HOME-Verzeichnis unter Linux

So überprüfen Sie die Größe von Dateien und Verzeichnissen unter Linux