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

How Get Size Directory Linux



Die Größe eines Verzeichnisses unter Linux zu kennen ist nicht so einfach, wie es sich anhört. Der Befehl ls -s listet die Dateien und Unterverzeichnisse mit ihrer Größe auf. Die für die Verzeichnisse angegebenen Größen (ca. 4096 Byte) sind jedoch keine Festplattennutzung. Die für ein Verzeichnis angezeigte Größe ist die Größe der Metadaten des Verzeichnisses.

Metadaten sind Daten über Daten. Die scheinbare Größe ist die Größe der Daten, die für den normalen Benutzer des Computers von Bedeutung ist. Der Inhalt (Text) der Briefe, Bilder, Videos usw. des Benutzers stellt die scheinbare Größe dar. Diese Daten werden nicht willkürlich im Computer gespeichert. Die Daten scheinbarer Größe müssen in einer kontrollierten Weise aufbewahrt werden. Es muss identifizierbar sein. Es muss vollständig sein. Dafür gibt es andere Anforderungen. Um diese zusätzlichen Anforderungen zu erfüllen, sind einige zusätzliche Daten erforderlich, und diese zusätzlichen Daten sind die Metadaten.







Denken Sie daran, dass ein Volume nur ein Verzeichnis enthält. Der Rest sind Unterverzeichnisse. Das Root-Verzeichnis führt zu Unterverzeichnissen, aus denen andere Unterverzeichnisse nach unten gehen. Unterverzeichnisse werden jedoch normalerweise einfach als Verzeichnisse bezeichnet. Es gibt also nur einen Verzeichnisbaum.



Daher ist ls -s nicht nützlich, um die Größe eines Verzeichnisses zu ermitteln. Welcher Befehl ist dann sinnvoll? – Der du-Befehl. du steht für Festplattennutzung. Es druckt die Festplattennutzung des Verzeichnisses.



In diesem Artikel werden die verschiedenen Funktionen des Befehls du in Linux erklärt, der den Programmierern verschiedene Möglichkeiten bietet, die Größe der Verzeichnisse und ihrer Unterverzeichnisse zu ermitteln. Bash ist die Shell, die für die Codebeispiele dieses Artikels verwendet wird.





Artikelinhalt

du ohne Option oder Argument

Das aktuelle Arbeitsverzeichnis ist das Verzeichnis, in dem der Benutzer gerade arbeitet. Die Eingabeaufforderung zeigt normalerweise das aktuelle Arbeitsverzeichnis an. Geben Sie du ohne Option und Argument wie folgt ein:



von

und anschließendes Drücken der Eingabetaste zeigt die Festplattennutzung für alle Unterverzeichnisse des aktuellen Arbeitsverzeichnisses an. Es zeigt diese Informationen für den Unterbaum des aktuellen Arbeitsverzeichnisses an. Ein Punkt in der Anzeige repräsentiert das aktuelle Arbeitsverzeichnis.

Jeder Pfad des Teilbaums wird in einer Linie auf dem Display dargestellt. Jede Zeile beginnt mit der Größe des Verzeichnisses (das ist der Nachname im Pfad). Die Anzeige kann etwa so aussehen:

8./dir1/dir2/dir3/dir4

12./dir1/dir2/dir3

16./dir1/dir2

zwanzig./dir1

Beachten Sie, dass es nicht klar ist, ob die Größe in Byte oder Kilobyte oder in Megabyte oder Gigabyte angegeben wird. Kilobyte Symbol, K bedeutet 1024 Byte; Megabyte Symbol, M bedeutet 1.048.576 Byte; Gigabyte Symbol, G bedeutet 1.073.741.824 Byte. Für die anzugebenden Vielfachen sollte die Option -h (switch) wie folgt verwendet werden:

von -h

Die Anzeige würde dann so aussehen:

8.0K ./dir1/dir2/dir3/dir4

12K ./dir1/dir2/dir3

16K ./dir1/dir2

20K ./dir1

Wenn die Option -h verwendet wird, werden die Größen als lesbar bezeichnet.

Hinweis: Mit der Option –all gibt der Befehl du auch die Festplattennutzung für Dateien an; Die Datenträgernutzung für Dateien wird in diesem Artikel jedoch nicht behandelt.

Größe anderer Verzeichnisse

Ein typischer absoluter Pfad für ein Linux-Volume lautet wie folgt:

/Heimat/John/sagen/dirTwo/dirDrei/dirFour

Das erste / ist das Stammverzeichnis. Dieses Verzeichnis hat unmittelbare Unterverzeichnisse, einschließlich des Home-Verzeichnisses. Das Home-Verzeichnis enthält das Verzeichnis des Benutzers. Wenn der Name des Benutzers John ist, kann er das Verzeichnis des Benutzers John nennen. Das Verzeichnis des Benutzers wird durch ~ gekennzeichnet. So kann der Benutzer mit dem Befehl cd ~ von jedem beliebigen Verzeichnis aus in sein Verzeichnis gelangen. dirOne ist ein vom Benutzer erstelltes Verzeichnis. Der Benutzer kann auf dieser Ebene auch andere Verzeichnisse erstellen. dirTwo, dirThree und dirFour sind vom Benutzer erstellte Unterverzeichnisse zu ihren vorherigen Verzeichnissen.

Der Benutzer kann die Größe jedes anderen Verzeichnisses und seiner Unterverzeichnisse (Sub-Tree) aus jedem Verzeichnis ermitteln, wobei der absolute Pfad als Argument umgangen wird. Wenn beispielsweise eine Festplattennutzung erforderlich ist,

/Heimat/John/sagen/dirTwo

dann wäre der befehl:

von -h /Heimat/John/sagen/dirTwo

oder

von -h~/sagen/dirTwo

wobei ~ das Verzeichnis des Benutzers darstellt.

Um einen relativen Pfad zu verwenden, muss sich der Benutzer bereits im entsprechenden übergeordneten Verzeichnis befinden. Wenn beispielsweise die Eingabeaufforderung angezeigt wird,

John@Gastgeber:~/sagen $

Das heißt, der Benutzer befindet sich im Verzeichnis /home/john/dirOne, dann liefert der folgende Befehl das gleiche Ergebnis wie der obige Befehl:

von -hdirTwo

Die Pfade wären immer noch relativ. Um dieselben Informationen für das aktuelle Verzeichnis anzuzeigen, verwenden Sie kein Argument oder verwenden Sie den Punkt.

Dieses Schema kann verwendet werden, um die Größe nur eines Verzeichnisses zu ermitteln, das letzte in einem Pfad (mit vorangestelltem Pfad). Es ist möglich, die Größe eines Verzeichnisses in der Mitte eines Pfads abzurufen – siehe exclude=PATTERN unten.

Gesamtsumme

Es kann eine Gesamtgröße aller beteiligten Verzeichnisse erzeugt werden. Für die obige Situation wäre der Befehl:

von -h --gesamt

scheinbare Größe

Die scheinbare Größe ist normalerweise kleiner als die Festplattennutzung. In einigen Situationen ist die scheinbare Größe jedoch größer als die Festplattennutzung; Grund – siehe später. Der Befehl, um die scheinbaren Größen für den obigen relativen Pfad zu erhalten, wäre:

von -h --scheinbare-GrößedirTwo

Maximale Tiefe

Bei –max-depth=0 gibt du nur die Größe des aktuellen Arbeitsverzeichnisses aus; mit du –max-depth=1 gibt du die Größe des aktuellen Arbeitsverzeichnisses und die Größe aller Unterverzeichnisse der ersten Ebene aus; mit –max-depth=2 gibt du die Größe des aktuellen Arbeitsverzeichnisses und die Größe aller Unterverzeichnisse der ersten Ebene und aller Unterverzeichnisse der zweiten Ebene aus; mit –max-depth=3 gibt du die Größe des aktuellen Arbeitsverzeichnisses und aller Unterverzeichnisse der ersten Ebene und aller Unterverzeichnisse der zweiten Ebene und aller Unterverzeichnisse der dritten Ebene aus; dies setzt sich mit steigendem Wert von max-depth fort. Ein Beispiel für seine Verwendung ist:

von -h --maximale Tiefe=2

Der sudo-Befehl

Eines der Verzeichnisse mit eigenen Unterverzeichnissen im Stammverzeichnis ist var. Wenn der Benutzer tippt

von -h /wo

und drückt die Eingabetaste, wird er feststellen, dass die Berechtigung für einige Verzeichnisse verweigert wird. Das heißt, er kann die Größe einiger Verzeichnisse nicht kennen. Die Berechtigung wird verweigert, da der Benutzer nicht der Superuser ist. Der Superuser hat das Recht, die Größe (Festplattennutzung) dieser Verzeichnisse anzuzeigen. Damit der Benutzer dieses Privileg erwerben kann, muss er den Befehl sudo wie folgt verwenden:

sudo von -h /wo

Wenn die Shell den Benutzer nach seinem Passwort fragt, muss der Benutzer das Passwort eingeben und die Eingabetaste drücken. Mit dem sudo-Befehl kann der normale Benutzer (Programmierer) die Größe aller Verzeichnisse im var-Verzeichnis und ähnlicher Verzeichnisse sehen.

Ausschließen von Einträgen nach Größe

Die Option –threshold=SIZE lässt keine Auflistung von Verzeichnissen zu, deren Größe kleiner als SIZE ist. Für den Weg,

/Heimat/John/sagen/dirTwo/dirDrei/dirFour

mit der Eingabeaufforderung at[E-Mail geschützt]:~$, dann

von -h --Schwelle=12K dirOne

wobei 12K 12 Kilobyte bedeutet, wird die Zeile für Verzeichnisse, deren Festplattennutzung weniger als 12 KB beträgt, nicht angezeigt.

–exclude=MUSTER

Diese Option und dieser Wert können Verzeichniszeilen auslassen, die der Benutzer nicht in der Auflistung haben möchte.

Um die Zeile für das letzte Verzeichnis wegzulassen, dirFour des Pfades

/Heimat/John/sagen/dirTwo/dirDrei/dirFour

der Befehl sollte lauten:

von -h --ausschließen= sagen/dirTwo/dirDrei/dirVier dirOne

Das Ergebnis wird etwa sein,

4.0K dirOne/dirTwo/dirDrei

8.0K dirOne/dirTwo

12K dirOne

Hinweis: Die Größen enthalten nicht die Größe des Verzeichnisses der letzten Ebene (dirFour) des Pfads.

Um nur die Größen der oberen Tiefenverzeichnisse und ihrer Unterbäume zu haben, haben Sie die unteren Tiefenverzeichnisse nicht in der Option. Also mit dem Befehl

von -h --ausschließen= sagen/dirTwo/dirThree dirOne

Die Ausgabe wird etwa so sein,

4.0K dirOne/dirTwo

8K dirOne

Hinweis: Die Größen haben die Größen der unteren Hebelverzeichnisse des Baums ausgenommen.

Betrachten Sie noch einmal den absoluten Link,

/Heimat/John/sagen/dirTwo/dirDrei/dirFour

Mit dem folgenden Befehl wird nur die Festplattennutzung des Verzeichnisses dirTwo abgerufen, das ein Verzeichnis innerhalb des Pfads ist. Der Befehl lautet:

von -h --ausschließen=/Heimat/John/sagen/dirTwo/ * /Heimat/John/sagen/dirTwo

Das Argument hat alle vorhergehenden Verzeichnisse bis auf das fragliche. Der Wert von exclusive hat alle vorhergehenden Verzeichnisse, die mit * enden, direkt nach dem fraglichen. * bedeutet alle Unterverzeichnisse auf dieser Ebene (und ihre Unterbäume). Das Ergebnis wird etwa sein,

5.0K/Heimat/John/sagen/dirTwo

Abschluss

Der Versuch, die Größe eines Verzeichnisses mit dem Befehl ls -s zu ermitteln, ist irreführend. Damit werden nur die Metadaten des Verzeichnisses abgerufen. Um die Plattennutzung eines Verzeichnisses zu erfahren, sollte der Befehl du verwendet werden. Bei Verwendung mit der Option -h sind die Größen der Verzeichnisse lesbar. Die scheinbare Größe kann mit der Option scheinbare Größe ermittelt werden. Ohne Option und Argument zeigt der Befehl du nur die Größe aller Unterverzeichnisse des aktuellen Verzeichnisses an, einschließlich der des aktuellen Verzeichnisses. Das Argument für du ist der Pfad, der bei der Wurzel beginnen kann. Optionen und einige ihrer Werte entscheiden genau, welche Verzeichnisse angesprochen werden. Der Befehl sudo gewährt dem normalen Benutzer standardmäßig Superuser-Berechtigungen.