Wie finde ich die größten Verzeichnisse in Unix / Ubuntu?

34

Gibt es in Unix eine Möglichkeit, die größten Verzeichnisse auf der Festplatte anzuzeigen?

Ich muss wissen, warum ich fast mit dem Speicherplatz auf dem Server fertig bin, und ich weiß nicht, wo der größte Teil des Speicherplatzes verwendet wird.

Vielen Dank

aneuryzm
quelle
2
Möglicherweise Duplikat von Größte Verzeichnisse / Dateien rekursiv
suchen
Hier ist eine gute: unix.stackexchange.com/questions/4681/… - es heißt zu verwenden, du | sort -hdann zu verwenden tail- oder Sie können verwenden, sort -rhso dass die größten am Anfang sind und Sie können verwenden more, um es zu sehen. Dies funktioniert hervorragend auf Ubuntu 16.04 LTS im August 2017.
SDsolar

Antworten:

54

Versuchen Sie: du --max-depth=7 /* | sort -n- Es werden Ihnen nicht nur Verzeichnisse und Duplikate angezeigt, sondern alle 7 Ebenen aufgelistet und nach Größe sortiert.

James L
quelle
13
7 Levels auf einmal könnten überwältigend sein. Ich würde mit --max-depth=0(oder besser gesagt mit --summarize/ -s) beginnen und dann von Hand in die größten Verzeichnisse bohren.
Steven Montag
Guter Punkt, wählen Sie einfach diese Zahl, denn so weit komme ich normalerweise, bevor ich etwas Nützliches finde.
James L
3
was ist mit du -cs * | sort -neiner übersicht welches verzeichnis größer ist?
Lorenzog
Ich bevorzuge:du -ch | sort -nr | head -10
Sklavit
47

Mein Lieblingswerkzeug für diese Aufgabe ist ncdu .

ncdu Beispielbildschirm

halp
quelle
3
Nett. Es funktioniert so ziemlich so, wie ich es von Hand machen würde (mit du | sort), aber mit viel weniger Tippaufwand.
Steven Montag
Das ist viel besser. Installieren Sie einfach ncdu und geben Sie den Befehl ncdu in das Verzeichnis ein, das Sie analysieren möchten. Dies funktioniert sehr schnell.
Jamol
6

Ich schlage vor, dass Sie Baobab verwenden , um eine grafische Übersicht über Ihre Festplattennutzung zu erhalten. Es kann auch für Remote-Ordner (über ssh, ftp, ...) verwendet werden, um beispielsweise die Datenträgerverwendung auf einem Remote-Server zu überprüfen.

Bearbeiten: Wenn Sie die Datenträgerverwendung direkt auf dem Server mit Ihrem Shell-Zugriff und nicht remote untersuchen möchten und ein komfortableres Tool als möchten du, können Sie es auch mit durep versuchen, das einen Bericht über die Datenträgerverwendung erstellt mit Balkendiagrammen.

uloBasEI
quelle
cool, aber ich habe nur Shell-Zugriff auf mein VPS (niedriger RAM)
aneuryzm
3

Normalerweise benutze ich so etwas:

du -ch / | sort

Sie können eine Tiefenbeschränkung mit --max-depth = anwenden, wenn Sie von Ihrem Ziel aus nicht über ein bestimmtes Level hinaus sehen möchten, wie folgt:

du -ch --max-depth=4 /

quelle
0

Probieren Sie df& du -sh /. Und rekursiv du -sh. Nicht die beste Lösung.


quelle
0

So etwas wie

sudo du / | sort -n

Gibt Ihnen eine schnelle Antwort (die letzten Einträge sind die größten Dateien / Verzeichnisse)

NJ
quelle
2
Schnell definieren? Nach meiner Erfahrung dauert dies normalerweise mindestens 5-10 Minuten.
James L
0

# cd /; du -shb | sort -nr > /root/home/disk-space-report.txt

LawrenceC
quelle
0

Ich benutze immer Syntax wie

du -sm --max-depth=4 /path/i/want/to/drill | sort -nr | head -n 20.

Die max-depth- und head-Parameter können natürlich variieren, aber in den oben genannten sind die 20 größten Verzeichnisse aufgeführt.

Janne Pikkarainen
quelle
0

Ich laufe regelmäßig du -dak > du-dak.outoben auf jedem Dateisystem. Dann kann ich mit eine grafische Darstellung bekommen xdu < du-dak.out. Dies kann aus der Ferne erfolgen, nachdem Sie die Datei du-dak.out über das Netzwerk übertragen haben, falls Sie nur über Textzugriff verfügen.

http://sd.wareonearth.com/~phil/xdu/

jlliagre
quelle