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

So erhalten Sie die Größe eines Verzeichnisses unter Linux
Das Wissen der Größe eines Verzeichnisses in Linux ist nicht so einfach, wie es sich anhört. Der Befehl „LS -S“ listet die Dateien und Unterverzeichnisse mit ihren Größen auf. Die für die Verzeichnisse angegebenen Größen (ca. 4096 Bytes) sind jedoch keine Festplattennutzung. Die Größe für ein Verzeichnis ist die Größe der Meta-Daten des Verzeichnisses.

Metadaten sind Daten über Daten. Die scheinbare Größe ist die Größe der Daten, die für den gewöhnlichen Benutzer des Computers von Bedeutung sind. Der Inhalt (Text) der Buchstaben, Bilder, Videos usw. des Benutzers., die scheinbare Größe darstellen. Diese Daten werden nicht willkürlich im Computer aufbewahrt. Die Daten der scheinbaren Größe müssen kontrolliert gehalten werden. Es muss identifizierbar sein. Es muss vollständig sein. Es gibt andere Anforderungen dafür. Einige zusätzliche Daten sind erforderlich, um diese zusätzlichen Anforderungen zu erfüllen, und diese zusätzlichen Daten sind die Meta-Daten.

Denken Sie daran, es gibt nur ein Verzeichnis in einem Band. Der Rest sind Unterverzeichnisse. Das Wurzelverzeichnis führt zu Unterdirektorien. Unter-Verzeichnisse werden jedoch normalerweise einfach als Verzeichnisse bezeichnet. Und so gibt es nur einen Verzeichnisbaum.

"LS -S" ist also nicht nützlich, um die Größe eines Verzeichnisses zu erhalten. Welcher Befehl dann nützlich ist? - Der DU -Befehl. "DU" steht für Disk Nutzung. Es druckt die Datenträgerverwendung des Verzeichnisses.

In diesem Artikel werden die verschiedenen Merkmale des DU-Befehls in Linux erläutert, der die verschiedenen Programmierer-Möglichkeiten bietet, die Größen der Verzeichnisse und deren Unterverzeichnisse zu kennen. Bash ist die Shell, die für die Codeproben dieses Artikels verwendet wird.

Artikelinhalt

  • DU ohne Option oder Argument
  • Größe anderer Verzeichnisse
  • scheinbare Größe
  • Der Sudo -Befehl
  • Ohne Einträge nach Größe
  • ausschließen = Muster
  • Abschluss

DU ohne Option oder Argument

Das aktuelle Arbeitsverzeichnis ist das Verzeichnis, in dem der Benutzer derzeit arbeitet. Die Eingabeaufforderung zeigt normalerweise das aktuelle Arbeitsverzeichnis an. DU ohne Option und Argument eingeben, wie SO:

Du

Wenn Sie dann die Eingabetaste drücken. Es werden diese Informationen für den Unterbaum des aktuellen Arbeitsverzeichnisses angezeigt. Ein Punkt am Display repräsentiert das aktuelle Arbeitsverzeichnis.

Jeder Pfad des Unterbaums ist in einer Zeile an der Anzeige dargestellt. Jede Zeile beginnt mit der Größe des Verzeichnisses (der Nachname im Pfad ist). Die Anzeige kann so etwas wie:

8 ./Dir1/dir2/dir3/dir4
12 ./Dir1/dir2/dir3
16 ./dir1/dir2
20 ./Dir1

Beachten Sie, dass nicht klar ist, ob sich die Größe in Bytes oder Kilobyten oder Megabyten oder Gigabyte befindet. Kilobyten von Symbol, k bedeutet 1024 Bytes; Megabyte von Symbol, M bedeutet 1.048.576 Bytes; Gigabyte von Symbol, G bedeutet 1.073.741.824 Bytes. Damit die zu angegebenen Vielfachen angezeigt werden sollen, sollte die Option -H (Switch) wie folgt verwendet werden:

du -h

Das Display 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, sollen die Größen in lesbarer Form liegen.

HINWEIS: Mit der Option -all wird der DU -Befehl auch die Datenträgernutzung für Dateien angeben. Die Datenträgernutzung für Dateien wird jedoch in diesem Artikel nicht behandelt.

Größe anderer Verzeichnisse

Ein typischer absoluter Pfad für ein Linux -Volumen ist wie folgt:

/Home/John/Dirone/Dirtwo/DirThree/Dirfour

Das erste / ist das Stammverzeichnis. Dieses Verzeichnis verfügt. Das Heimverzeichnis hat das Verzeichnis des Benutzers. Wenn der Name des Benutzers John ist, kann er das Verzeichnis des Benutzers benennen, John. Das Verzeichnis des Benutzers wird durch ~ identifiziert. Daher kann der Benutzer den Befehl "CD ~" verwenden, um sein Verzeichnis aus jedem Verzeichnis zu erreichen. Dirone ist ein Verzeichnis, das vom Benutzer erstellt wurde. Der Benutzer kann auch andere Verzeichnisse auf dieser Ebene erstellen. Dirtwo, Dirthree und Dirfour sind Unterverzeichnisse zu ihren vorherigen Verzeichnissen, die vom Benutzer erstellt wurden.

Der Benutzer kann die Größe eines anderen Verzeichnisses und seiner Unterverzeichnisse (Unterbaum) aus jedem Verzeichnis kennen, wodurch der absolute Pfad als Argument umgangen wird. Zum Beispiel, wenn die Festplattennutzung benötigt wird,

/Home/John/Dirone/Dirtwo

Dann wäre der Befehl:

du -h/home/John/Dirone/Dirtwo

oder

du -h ~/dirone/dirtwo

wo ~ das Benutzerverzeichnis repräsentiert.

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

John@Host: ~/Dirone $

Das heißt, der Benutzer befindet sich im Verzeichnis,/home/John/dirone, dann gibt der folgende Befehl das gleiche Ergebnis wie der obige Befehl:

Du -h Dirtwo

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 von nur einem Verzeichnis zu erhalten, das letzte auf einem Pfad (dem Pfad vorausgeht). Es ist möglich, die Größe eines Verzeichnisses in der Mitte eines Pfades zu erhalten - siehe unten „Ausschließen = Muster“.

Gesamtsumme

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

du -h - -total

scheinbare Größe

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

DU -H -Apparent -Größe Dirtwo

Maximale Tiefe

Mit -max -Depth = 0 druckt DU nur die Größe des aktuellen Arbeitsverzeichnisses. Mit Du-Max-Depth = 1 druckt DU die Größe des aktuellen Arbeitsverzeichnisses und die Größen aller Subdirektorien der ersten Ebene; Mit -max-Depth = 2 druckt DU die Größe des aktuellen Arbeitsverzeichnisses und die Größen aller Subdirektorien der ersten Ebene und aller Subdirektorien der zweiten Ebene; Mit -Max-Depth = 3 druckt DU die Größe des aktuellen Arbeitsverzeichnisses und alle Subdegektorien der ersten Ebene sowie alle seine Subdirektorien der zweiten Stufe sowie aller Subdirektorien der dritten Ebene aus; Dies setzt sich mit zunehmendem Wert der maximalen Tiefe fort. Ein Beispiel für die Verwendung ist:

du -h -max -tiefe = 2

Der Sudo -Befehl

Eines der Verzeichnisse mit seinen eigenen Unterdirektorien im Wurzelverzeichnis ist VAR. Wenn der Benutzer typisiert

du -h /var

und Pressungen eingeben, wird er erkennen, dass die Erlaubnis für einige Verzeichnisse verweigert wird. Das heißt, er kann die Größen einiger Verzeichnisse nicht kennen. Die Erlaubnis wird abgelehnt, weil der Benutzer nicht der Superuser ist. Der Superuser hat das Privileg, die Größen (Festplattennutzung) dieser Verzeichnisse zu sehen. Damit der Benutzer dieses Privileg erwerben kann, muss er den Sudo -Befehl wie folgt verwenden:

sudo du -h /var

Wenn die Shell den Benutzer nach seinem Passwort auffordert, muss der Benutzer das Passwort eingeben und die Eingabetaste drücken. Mit dem Befehl sudo kann der gewöhnliche Benutzer (Programmierer) die Größen aller Verzeichnisse im VAR -Verzeichnis und ähnliche Verzeichnisse sehen.

Ohne Einträge nach Größe

Die Option „-Threshold = Größe“ ermöglicht keine Auflistungsverzeichnisse, deren Größen geringer sind als die Größe. Für den Weg,

/Home/John/Dirone/Dirtwo/DirThree/Dirfour

mit der Eingabeaufforderung bei "John@host: ~ $", dann

du -h -Threshold = 12k Dirone

Wenn 12k 12 Kilobyte bedeutet, wird die Linie für ein Verzeichnis, dessen Festplattennutzung weniger als 12k beträgt, nicht angezeigt.

-ausschließen = Muster

Diese Option und dieser Wert können Verzeichniszeilen weglassen, die der Benutzer in der Auflistung nicht gewünscht hat.

Die Linie für das letzte Verzeichnis, Dirfour des Pfades

/Home/John/Dirone/Dirtwo/DirThree/Dirfour

Der Befehl sollte sein:

DU -H -EXCLUDE = DIRONE/DIRTWO/DIRNTHEE/DIRFOUR DIRONE

Das Ergebnis wird so etwas sein wie,

4.0k Dirone/Dirtwo/Dirthree
8.0k Dirone/Dirtwo
12k Dirone

Hinweis: Die Größen haben die Größe des letzten Levelverzeichniss (Dirfour) des Pfades nicht enthalten.

Um nur die Größen der Verzeichnisse der oberen Tiefe und deren Unterbäume zu haben, haben Sie nicht die Verzeichnisse der niedrigeren Tiefe in der Option. Also mit dem Befehl,

DU -H -EXCLUDE = DIRONE/DIRTWO/DIRTHEE DIRONE
Die Ausgabe wird so etwas sein wie,
4.0k Dirone/Dirtwo
8k Dirone

Hinweis: Die Größen haben die Größen der unteren Hebelverzeichnisse des Baumes ausgeschlossen.

Bedenken Sie erneut, den absoluten Link,

/Home/John/Dirone/Dirtwo/DirThree/Dirfour

Der folgende Befehl erhält die Disk -Nutzung nur des Dirtwo -Verzeichnisses, das ein Verzeichnis innerhalb des Pfades ist. Der Befehl ist:

du -h -exclude =/home/John/dirone/dirtwo/*/home/John/dirone/dirtwo

Das Argument hat alle vorhergehenden Verzeichnisse auf den fraglichen. Der Wert des Ausschlusses hat alle vorhergehenden Verzeichnisse, die mit *enden, kurz nach dem fraglichen. * bedeutet alle Unterverzeichnisse auf dieser Ebene (und deren Unterbäume). Das Ergebnis wird so etwas sein wie,

5.0k/home/John/Dirone/Dirtwo

Abschluss

Der Versuch, die Größe eines Verzeichnisses mit dem Befehl „LS -S“ zu kennen, ist irreführend. Damit wird nur die Meta-Daten des Verzeichnisses erhalten. Um die Disk -Nutzung eines Verzeichnisses zu kennen, sollte der DU -Befehl verwendet werden. Bei Verwendung mit der Option -H sind die Größen der Verzeichnisse lesbar. Die scheinbare Größe kann unter Verwendung der Option scheinbarer Größe erhalten werden. Ohne Option und Argument zeigt der DU -Befehl nur die Größen aller Unterverzeichnisse des aktuellen Verzeichnisses an, einschließlich des des aktuellen Verzeichnisses. Das Argument zu „DU“ ist der Weg, der von der Wurzel aus beginnen kann. Optionen und einige ihrer Werte entscheiden genau, welche Verzeichnisse angegangen werden. Der SUDO -Befehl gibt dem gewöhnlichen Benutzer Superuser -Berechtigungen standardmäßig an.