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
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.