Frage

ich den Befehl erfolglos die Größe von Verzeichnissen zu erhalten (Dateien innerhalb gehören zu der Größe eines Verzeichnisses)

ls -lSrh

ich Kilobit nur für die Größe der Verzeichnisse, während ihr Anteil mehr als das ist.

Wie kann man die Größe der Verzeichnisse einschließlich deren Inhalt in der Anzahl von ls

War es hilfreich?

Lösung

du -sh directory_name

ls wird die Größe des Verzeichnisses geben Eintrag , nicht der Verzeichnisinhalt. Basierend auf meiner schnellen Skim von man ls es scheint keinen Weg, um ls Tauchgang nach unten und berechnet die Größe der Verzeichnisse zu machen (wahrscheinlich, weil es eine teuere Operation sein würde).

Andere Tipps

Wenn Sie Verzeichnisse Größe erhalten möchten, können Sie

du -sh

du -hs ist groß, bis Sie ein großes Verzeichnis haben.

Zum Beispiel, wenn Sie Cache-Dateien speichern (zum Beispiel des Dateisystem-Cache-Speicher für Rails) oder hochgeladenen Dateien, ... mit einem partitionierten Schema, wie „Cache / 123/456/789 / real_files“ und Sie haben eine Menge von ihnen , du nimmt für immer, schließlich alle IO blockiert wird.

Ich habe nicht eine bessere Lösung habe, aber dies ist in Betracht gezogen werden, bevor Sie diese auf Produktionsserver während der Spitzenzeit ausgeführt werden.

Aufbauend auf Sean Bright Antwort Sie die folgenden (in BASH) tun können,

for each in $(echo */ | sed "s/ /\n/g" | sed "s/\///g");  do du -hs "$each"; done;

Dies wird einen vollständigen Verzeichnisinhalt für all Verzeichnisse im aktuellen Verzeichnis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top