Wie liste ich rekursive Dateigrößen von Dateien und Verzeichnissen in einem Verzeichnis auf?


50

Wie liste ich alle Dateien in einem Verzeichnis und ihre rekursiven Dateigrößen auf?

---bearbeiten

Ich möchte, dass die Größen für die übergeordneten Verzeichnisse im angegebenen Verzeichnis "aufgerollt" werden. Ich möchte die untergeordneten Verzeichnisse oder deren Inhalt oder Größe nicht sehen.


1
Sie möchten die Gesamtgröße (Summe) aller Dateien in einem Ordner anzeigen, z. B. indem Sie mit der rechten Maustaste auf einen Ordner auf Ihrem Desktop klicken und "Eigenschaften" auswählen.
Pavlos G.

Suchen Sie nach einer Software, die Ihnen hilft, große Dateien zu finden, oder nach etwas, um einen (ausblendbaren) Dateibaum zu erhalten?
Lekensteyn

Hallo @Pavlos G - Ich meine die Summe für jedes der Verzeichnisse in dem Verzeichnis, in dem ich mich gerade befinde - nicht die Summe für das Gesamtverzeichnis.
Hawkeye

@JG - Überprüfen Sie mein Update ;-)
Pavlos G.

Antworten:


53

Ich denke, der einfachste Weg ist die Eingabe ls -loder ls -lhdie Angabe der Dateigröße in einem für Menschen lesbaren Format (KB, MB usw.).

Wenn 'rekursiv' bedeutet, alle nachfolgenden Ordner aufzulisten, zB:

/ foo /
/ foo / bar / ....

Dann sollten Sie auch Parameter Rwie ls -lRoder hinzufügenls -lhR

Weitere Informationen lszu finden Sie durch Eingabeman ls

Aktualisieren:

Der folgende Befehl, wie von Lekensteyn vorgeschlagen, wird wahrscheinlich die Arbeit erledigen:

du -h --max-depth=1 <folder>

-hist für Menschen lesbar
--apparent-sizeist eine andere Möglichkeit, um Größen anzuzeigen, wie bereits angegeben,
--max-depthist die Ebene der Unterordner, auf die Sie gehen möchten.


Was für maximale Tiefe verwenden? -1?
dylanh724

61
apt-get install ncdu

Bildbeschreibung hier eingeben

Es ist auch interaktiv, wenn Sie einen Unterordner nur nach OBEN, UNTEN und EINGABETASTE durchsuchen möchten.


Genau das, wonach ich gesucht habe. Vielen Dank!
Mathlight

Vielleicht die erstaunlichste Software-Empfehlung, die ich je bekommen habe
SomethingSomething

Dies sollte die genehmigte Antwort sein
dvdmn

30

So ermitteln Sie die Gesamtgröße eines Verzeichnisses und aller untergeordneten Elemente

du -hs directory/*

Ich möchte die nächstniedrigere Stufe - die rekursiven Größen aller Kinder der ersten Stufe.
Hawkeye

1
Ich werde meine Antwort bearbeiten. Sie müssen du -h directory / *
Richard Holloway

17

Schau auch mal rein tree. Es ist nicht standardmäßig installiert, sondern die Repositorys.

Beispiel:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Weitere Optionen finden Sie in der Manpage.


Sollten Größen angezeigt werden?
Hawkeye

JG: Das -s zeigt die Größen.
Richard Holloway

1
Zeigt die Größe des Verzeichniseintrags anstelle der vollständigen Verzeichnisgröße an.
Steven Lu

-hZeigen Sie Größe auf menschenlesbare Weise, z. B.tree -s
Eric Wang

15

Da Sie nicht ausdrücklich erwähnen, dass Sie eine terminalbasierte Lösung benötigen, fehlt der Baobab aka Disk Usage Analyzer in der Liste.

Es ist standardmäßig in Ubuntu installiert und macht genau das, was Sie wollen, in einer schönen grafischen Benutzeroberfläche mit der Möglichkeit, die Verzeichnishierarchie aufzuspüren.

Neben der Anzeige einer Liste von Verzeichnissen mit ihrer Größe wird auch ein Ring- oder Treemap-Diagramm der Dateisystemnutzung angezeigt. Dies ist äußerst nützlich, um die Verzeichnisse zu visualisieren, die den meisten Speicherplatz beanspruchen.

Baobab der Disk Usage Analyzer


7

Eine Terminallösung ist der duBefehl:

du --all --human-readable --apparent-size

(Kurzform: du -ah --apparent-size)

duZeigt die Festplattennutzung für jede Datei und jedes Verzeichnis an. Die Optionen erklärt:

  • --all, -a- Größe auch für Dateien anzeigen, nicht nur für Verzeichnisse
  • --human-readable, -h- Größen in einem für Menschen lesbaren Format anzeigen, z. B. 10K(10 Kilobyte), 10(10 Bytes)
  • --apparent-size - Zeigen Sie die tatsächliche Dateigröße an, nicht die von der Festplatte verwendeten Größen.

Ich wollte nur die Kinder der ersten Ebene
Hawkeye

2
@ Hawkeye für 1. Ebene können Sie--max-depth=1
Nikoskip

4
@nikoskip schöner tipp! Ebenfalls gut zu wissen ist die Kurzschrift, --max-depth=1auf die gekürzt werden kann -d1.
Lekensteyn,

wie man all diese in einer absteigenden Reihenfolge der Größe
bekommt

Wie kann ich den Inhalt anzeigen und leer lassen: / dev / sda5 ext4 430G 381G 27G 94% / Mein Laptop ist weniger als 1 Monat alt und so voll, dass es keinen Sinn
ergibt

2

Dies scheint der Trick zu sein, wenn es sich um Simlinks handelt.

ls -LRlh

Die angegebene Antwort gab mir keine Details für Simlinks (ls -lhR), die Zahlen daneben entsprachen auch nicht der richtigen Größe der einzelnen Werte. Meine Antwort gab mir eine Hierarchie mit einer definierten Baumstruktur und der richtigen Antwort.
Mulki

Abwärtsstimmen zurückgezogen, aufgestimmt. Bitte editiere und schreibe den Kommentar in die Antwort ... Danke für die Erklärung. ;-)
Fabby

1

Um eine sortierte Liste zu erhalten, geben Sie alles in MB ein und sortieren:

du -m * | sort -n

Oder verwenden Sie ein Tool wie DiskReport , um einen Bericht über den vollständigen Festplattenbaum zu erstellen.


1

Eine andere Terminal-Lösung mit findund sortieren (nach Dateigröße, Spalte 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh

Dies zeigt nicht die Größe des Verzeichnisses.
muru
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.