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.