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.


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


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


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

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.


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

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.


1

Verwenden

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

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


0

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

du | sort -n

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'

-5
du -sh /path * | sort -nr | grep G

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


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
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.