Ich weiß, dass Sie die Bytegröße einer Datei sehen können, wenn Sie eine lange Auflistung mit ll
oder machen ls -l
. Aber ich möchte wissen, wie viel Speicher in einem Verzeichnis vorhanden ist, einschließlich der Dateien in diesem Verzeichnis und der darin enthaltenen Unterverzeichnisse usw. Ich möchte nicht die Anzahl der Dateien, sondern die Menge an Speicher, die diese Dateien belegen.
Ich möchte also rekursiv wissen, wie viel Speicher in einem bestimmten Verzeichnis vorhanden ist. Ich vermute, wenn es einen Befehl gibt, würde er in Bytes sein.
directory
disk-usage
recursive
Rob Avery IV
quelle
quelle
-b
to Output in BytesDu machst einfach:
Wo
-s
ist für Zusammenfassung und-h
für Menschen lesbar ( nicht standardmäßige Option).Seien Sie vorsichtig , aber im Gegensatz zu
ls
, wird dies nicht zeigen Ihnen , Dateigröße , aber Festplattennutzung (dh ein Vielfaches der Dateisystem - Blockgröße), aber die Datei kann kleiner sein , oder sogar noch größer, so dass Sie die verwenden können ,--apparent-size
Option:Dies ist die Größe, die bei Bedarf über das Netzwerk übertragen werden würde.
Tatsächlich enthält die Datei möglicherweise "Löcher" (leere Shell), ist möglicherweise kleiner als die Blockgröße des Dateisystems, ist möglicherweise auf Dateisystemebene komprimiert usw. Die Manpage erklärt dies.
Wie Nicklas betont, können Sie auch den
ncdu
Disk Usage Analyzer verwenden. Aus einem Verzeichnis heraus gestartet, zeigt es Ihnen, welche Ordner und Dateien Speicherplatz belegen, indem sie von der größten zur kleinsten geordnet werden.Sie können diese Frage auch sehen.
quelle
Beachten Sie, dass Sie, wenn Sie die Größe aller {sub} -Ordner in einem Verzeichnis wissen möchten, auch die Option
-d
oder verwenden können (für die ein Argument gilt: das rekursive Limit).--max-depth
du
Zum Beispiel :
Wird dir sowas zeigen
PS: Die Eingabe
0
als rekursives Limit entspricht der-s
Option. Mit diesen beiden Befehlen erhalten Sie dasselbe Ergebnis (die von Menschen lesbare Größe Ihres angegebenen Verzeichnisses ist rekursiv):quelle
-d 1
muss vor dem Verzeichnispfad stehenEine Alternative zu dem bereits erwähnten
du
Befehl wärencdu
ein netter Disk-Use-Analyzer zur Verwendung im Terminal. Möglicherweise müssen Sie es zuerst installieren, es ist jedoch in den meisten Paket-Repositorys verfügbar.Bearbeiten: Für das Ausgabeformat siehe diese Screenshots http://dev.yorhel.nl/ncdu/scr
quelle
Dadurch erhalten Sie eine Liste der Größen aus dem aktuellen Verzeichnis, einschließlich Ordner (rekursiv) und Dateien.
quelle
In Unix enthält ein Verzeichnis nur Namen und Verweise auf Dateisystemobjekte (Inodes, die auf Verzeichnisse, Dateien oder andere exotische Dinge verweisen können). Eine Datei kann unter mehreren Namen im selben Verzeichnis oder in mehreren Verzeichnissen aufgeführt sein. "Vom Verzeichnis und den darin enthaltenen Dateien belegter Speicherplatz" macht also wirklich keinen Sinn, da die Dateien nicht "darin" sind.
Das heißt, der Befehl
du(1)
listet den von einem Verzeichnis belegten Speicherplatz und alles, was über ihn erreichbar ist, indu -s
einer Zusammenfassung auf, wobei-h
einige Implementierungen wie GNUdu
eine "vom Menschen lesbare" Ausgabe liefern (dh Kilobyte, Megabyte).quelle
Bei mir hat es bei der Tiefe und dem Pfad auf einem OS X El Capitán rückwärts geklappt
quelle
Sie können "file-size.sh" aus der awk Velour-Bibliothek verwenden :
quelle