Ich habe versucht, die Größe eines Verzeichnisses (mit Verzeichnissen und Unterverzeichnissen) mithilfe des ls
Befehls with option zu ermitteln l
. Es scheint für files ( ls -l file name
) zu funktionieren , aber wenn ich versuche, die Größe eines Verzeichnisses zu ermitteln (zum Beispiel ls -l /home
), erhalte ich nur 4096 Bytes, obwohl es insgesamt viel größer ist.
command-line
ls
disk-usage
Abdul Al Hazred
quelle
quelle
-h
Option hinweisen, die Sie der-l
Option (dhls -lh
) hinzufügen können , um die Größe von Dateien zu erhalten, die in einer menschenfreundlichen Notation wie 1,1 MB anstelle von 1130301 ausgedruckt werden sollen "in demdu -hs
befehl, den @sam als antwort auf ihre frage nach verzeichnissen gab, heißt das auch" lesbar "und es erscheint auch, indf -h
dem die lesbaren mengen des belegten und freien speichers auf der festplatte angegeben sind.Antworten:
du -sh file_path
Erläuterung
du
Der Befehl ( d isc u sage) schätzt den Speicherplatzbedarf für file_pathDie Optionen
-sh
sind (vonman du
):Um mehr als ein Verzeichnis zu überprüfen und die Gesamtsumme anzuzeigen, verwenden Sie
du -sch
:quelle
du
und Sie geben auch die Möglichkeit, nach weiteren Details zu suchenman du
...find
zB um die Menge an Speicherplatz in bestimmten Unterverzeichnissen im aktuellen Pfad zu zählen:$ find . -type d -name "node_modules" -prune -exec du -sh {} \;
Verwenden Sie einfach den
du
Befehl:gibt Ihnen die kumulative Datenträgernutzung aller nicht ausgeblendeten Verzeichnisse, Dateien usw. im aktuellen Verzeichnis in einem für Menschen lesbaren Format an.
Mit dem
df
Befehl können Sie den freien Speicherplatz im Dateisystem ermitteln, der das Verzeichnis enthält:quelle
du -sh *
Startet das Auslösen von "Unbekannte Option" -Fehlern, wenn eine der Dateien in diesem Verzeichnis mit einem Bindestrich beginnt. Sicherer zu tundu -sh -- *
du -sh *
zeigt keine Speichernutzung von versteckten Ordnerndu -sh -- * .*
Dotfiles einbinden. Dies ist nützlich, um beispielsweise ein möglicherweise großes.git
Verzeichnis einzuschließen. Alternativ können Sie in zshsetopt globdots
standardmäßig Punktedateien globalisieren.--
? Ich weiß, dass es für Shell -Built-Ins gilt , um Optionsargumente zu beenden, aber esdu
ist kein Built -In, und ich sehe diese Verwendung nicht dokumentiert fürdu
: linux.die.net/man/1/du-b
(--apparent-size
)du
ist dein Freund. Wenn Sie nur die Gesamtgröße eines Verzeichnisses wissen möchten, springen Sie hinein und führen Sie Folgendes aus:Wenn Sie auch wissen möchten, welche Unterordner wie viel Speicherplatz beanspruchen ?! Sie können diesen Befehl folgendermaßen erweitern:
Dadurch erhalten Sie die Größe aller Unterordner (Ebene 1). Die Ausgabe wird sortiert (größter Ordner oben).
quelle
ncdu
die Dateien verwenden, werden standardmäßig nach absteigender Größe sortiert.du
Die Verwendung kann kompliziert sein, da anscheinend 100 Argumente übergeben werden müssen, um eine anständige Ausgabe zu erhalten. Das Herausfinden der Größe versteckter Ordner ist noch schwieriger.Machen Sie Ihr Leben einfach und nutzen Sie
ncdu
.Sie erhalten pro Ordner Zusammenfassungen, die einfach zu durchsuchen sind.
quelle
ncdu
ist toll, ich suche immer nach diesem Befehl, wenn vergessen. Es ist schnell, einfach zu navigieren und erleichtert das Auffinden großer Ordner. Zu Ihrer Information, es ist auch für MacOS und wahrscheinlich für alle Linux-Maschinen verfügbar.ncdu
indem Sie died
Taste drückenAndere haben es bereits erwähnt
du
, aber ich möchte auch Ncdu erwähnen - eine Ncurses-Version von Ncdu, diedu
Interaktivität bietet: Sie können die Verzeichnishierarchie direkt untersuchen und die Größe von Unterverzeichnissen anzeigen.quelle
Der
du
Befehl zeigt die Festplattennutzung der Datei an.Die
-h
Option zeigt Ergebnisse in lesbarer Form an (z. B. 4k, 5M, 3G).quelle
In allen obigen Beispielen wird die Größe der Daten auf der Festplatte angegeben (dh der von einer bestimmten Datei belegte Speicherplatz, der normalerweise größer als die tatsächliche Dateigröße ist). In einigen Situationen erhalten Sie keinen genauen Bericht, wenn die Daten nicht tatsächlich auf diesem Datenträger gespeichert sind und nur Inode-Verweise vorhanden sind.
In Ihrem Beispiel haben Sie ls -l für eine einzelne Datei verwendet, wodurch die tatsächliche Größe der Datei zurückgegeben wird, NICHT ihre Größe auf der Festplatte.
Wenn Sie die tatsächlichen Dateigrößen ermitteln möchten, fügen Sie du die Option -b hinzu.
quelle
persönlich halte ich das für das beste, wenn du es nicht nutzen willst
ncdu
quelle
Hier sehen Sie, wie viel Speicherplatz Sie auf dem aktuellen Laufwerk noch haben und wie viel jede Datei / jedes Verzeichnis belegt. z.B,
quelle
Ich benutze diesen Befehl als root :
quelle
Alle Dateien im aktuellen Verzeichnis rekursiv finden und ihre Größe zusammenfassen:
quelle
-not -type d
nicht nur die Größe von normalen Dateien (-type f
) summieren, sondern auch die Größe von symbolischen Links und so weiter.Hier ist eine Funktion für Ihre .bash_aliases
Beispielausgabe:
für subdirs:
quelle
Eine weitere Variante:
quelle
Beachten Sie,
du
dass der von einem Verzeichnis belegte Speicherplatz auf dem Datenträger in der Regel größer ist als die Gesamtgröße aller Dateien im Verzeichnis, dadu
die Größe aller auf dem Datenträger gespeicherten Zusatzinformationen berücksichtigt wird, um das Verzeichnis entsprechend zu organisieren mit Dateisystemformat.Wenn das Dateisystem komprimierbar ist, wird
du
möglicherweise eine noch geringere Anzahl als die Gesamtgröße aller Dateien ausgegeben, da Dateien möglicherweise vom Dateisystem intern komprimiert werden und daher weniger Speicherplatz auf dem Datenträger beanspruchen als nur nicht komprimierte Informationen. Gleiches gilt, wenn es spärliche Dateien gibt.Wenn das Verzeichnis feste Verknüpfungen enthält, wird
du
möglicherweise auch ein kleinerer Wert gedruckt, da mehrere verschiedene Dateien im Verzeichnis auf dieselben Daten auf dem Medium verweisen.Um die Gesamtgröße aller Dateien im Verzeichnis zu ermitteln, kann der folgende einzeilige Shell-Ausdruck verwendet werden (unter der Annahme eines GNU-Systems):
oder noch kürzer:
Es summiert einfach die Größe aller Nicht-Verzeichnisdateien im Verzeichnis (und seinen Unterverzeichnissen rekursiv) nacheinander. Beachten Sie, dass für Symlinks die Größe des Symlinks (nicht der Datei, auf die der Symlink verweist) angegeben wird.
quelle
Sie können verwenden
du -sh directory/
und
du -sh filename
um den von dem Ordner oder der Datei belegten Speicherplatz zu ermitteln.
df -h
zeigt die Datenträgerverwendung in einem für Menschen lesbaren Format an.
Es gibt auch ein GUI-basiertes Programm namens
Disk Usage Analyzer
.quelle
Hier ist ein POSIX-Skript, mit dem Folgendes funktioniert:
Quelle
quelle