Wie finde ich die größten Verzeichnisse oder Dateien? [Duplikat]

33

Diese Frage hat hier bereits eine Antwort:

Unter Linux suche ich einen Befehl, um die größte Datei und / oder die größten Verzeichnisse unter einem Verzeichnis aufzulisten.

Eric V
quelle
Das nützlichste Tool, das ich gefunden habe, ist xdiskusage ( xdiskusage.sourceforge.net ). Dies zeigt grafisch, wo sich die Dateien befinden - nach Größe. Tolles Werkzeug! (Und es funktioniert direkt mit X11)
Jcoppens
Wie wird dies von einer Frage dupliziert, die als Off-Topic geschlossen wurde? Ergibt keinen Sinn
Kenorb

Antworten:

17

Aus einem beliebigen Verzeichnis:

du -a | sort -n -r

Brent Worden
quelle
1
dies zeigt einzelne
dateien
du ohne Argumente fasst die Festplattennutzung nach Verzeichnissen zusammen. du with -a erzeugt die gleichen Verzeichnisinformationen und berücksichtigt auch die Festplattennutzung für einzelne Dateien.
Brent Worden
kann nicht sortieren, wenn du nicht genügend Platz hast: = (
Jonathan Henson
28

Der folgende Befehl zeigt Ihnen eine Ebene von Verzeichnissen und deren Größen

du --max-depth = 1 / path | sort -r -k1,1n

Wenn einer von ihnen wirklich auffällt (der letzte in der Liste ist der größte aufgrund von sort -r), führen Sie den Befehl in diesem Verzeichnis erneut aus und fahren Sie fort, bis Sie das betreffende Verzeichnis / die betreffende Datei finden.

Wenn Sie nur die zehn größten Dateien haben möchten, tun Sie dies einfach

find / home -type f -exec du -s {} \; | sort -r -k1,1n | Kopf

Marcin
quelle
Die größte Zahl landet für mich ganz unten, egal ob ich sie hinzufüge sort -roder nicht. Gibt es eine Möglichkeit, die größte Zahl an die Spitze zu bringen?
SquareCandy
Sie müssen angeben, nach welcher Spalte sortiert werden soll und ob diese numerisch (nicht alphanumerisch) ist. Das würde -k1,1rn tun. Standardmäßig verwendet sort die alphanumerische Sortierung für die erste Spalte.
Marcin
Ja, die Sortierung ist damit korrekt, aber es ist in aufsteigender Reihenfolge von niedrigen zu hohen Zahlen, egal ob ich sortoder einbinde sort -r. Verstehe ich falsch, wie das -r funktioniert? Ich denke, es ist keine große Sache. Ihr Beispiel ist sehr hilfreich und hat mir die Informationen geliefert, die ich brauchte.
Squarecandy
2
Mit der sortich habe ( sort (GNU coreutils) 8.13in Ubuntu 12.04.3) funktioniert die Option -rnicht, wenn -nsofort folgt -k( -k1,1n). Diese Reihenfolge der Optionen funktioniert: sort -rnk1,1.
Pabouk
27

Ein Dienstprogramm namens ncdugibt Ihnen die Informationen, die Sie suchen.

sudo apt-get install ncdu

Unter OS X kann es mit Homebrew installiert werden:

brew install ncdu
David Pratt
quelle
2
+1 Ich hatte noch nie davon gehört - hat auch auf dem Mac super funktioniert.
Andrew E
Dies ist eine viel schönere Lösung als die beiden höheren Antworten.
AlexLordThorsen
Das ist umwerfend. Schlagen Sie dies allen anderen Antworten vor!
Allen Gingrich
4

du -sk * | sort -nr | Kopf -1

Dies zeigt das größte Verzeichnis / die größte Datei in einem Verzeichnis in KB an. Wenn Sie den Wert für head ändern, werden die obersten x Dateien / Verzeichnisse angezeigt.

Sridharpp
quelle
2

Dieser Beitrag wird Ihnen gut helfen:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
Matz
quelle
2

Der folgende Befehl gibt die 10 größten Dateien der angegebenen Liste zurück /path

du -a -h / path | sort -h -r | head -n 10

Ich benutze gerne -hOptionen für die Lesbarkeit. Beides duund sortmüssen haben -h.

Jiang
quelle
1

Verwenden

ls -A | xargs -I artifact du -ms artifact | sort -nr

Optional können Sie eine Pipe hinzufügen und verwenden head -5

Abhishek
quelle
0

Verwenden Sie du. Versuchen Sie dies, um das Ergebnis zu bestellen:

du | sort -n
Heisenbug
quelle
0

Versuchen Sie es mit dem folgenden Einzeiler (zeigt die 20 größten Dateien im aktuellen Verzeichnis an):

ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20

oder mit vom Menschen lesbaren Größen:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Der zweite Befehl an die Arbeit auf OSX / BSD richtig (wie sortmuss nicht -h), müssen Sie die Installation sortvon coreutils.

Daher sind diese Aliase nützlich, um sie in Ihren RC- Dateien zu haben (jedes Mal, wenn Sie sie brauchen):

alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
Kenorb
quelle
-5
du -sh /path * | sort -nr | grep G

G für GIG (um kleinere Dateien / Verzeichnisse auszusortieren)

Stall
quelle
Dies listet alle Dateien und Ordner auf und zeigt die Größe an. Es sortiert die Größe nicht nach dem K-, M- oder G-Wert von Bytes, es sei denn, Sie GREPen es, wie Sie es gezeigt haben
Canadian Luke REINSTATE MONICA
Es wird auch alles mit einem Gim Dateinamen finden.
Kevin Panko