Finden Sie heraus, was den gesamten Speicherplatz in * nix belegt

21

Welche Befehlssequenz gibt an, welche Dateien ab einem bestimmten Verzeichnis, einschließlich aller Unterverzeichnisse, die größten sind? Ich möchte wissen, wohin der ganze Raum ging.

Am besten nur mit normalen Unix'y-Befehlen.

Versuchen Sie nach Möglichkeit, die Kompatibilität mit Sun OS 5.10 aufrechtzuerhalten (möglicherweise zusätzlich zu den regulären Linux-Antworten, nicht als Ersatz, um die Kompatibilität so allgemein wie möglich zu halten.)

Alex Budovski
quelle
Es gibt zwei Stimmen für SU und zwei für SF. Welches ist angemessener? Dies könnte meiner Meinung nach zu beiden gehören.
mmyers
5
@ mmyers: gab es SU ... SU braucht echte Fragen!
Shog9
1
Aber SU hat schon eine sehr ähnliche Frage! superuser.com/questions/9847/...
Jonik

Antworten:

11

Ich persönlich mag es du -sh *zu sehen, wie groß jedes Verzeichnis innerhalb des aktuellen Verzeichnisses ist.

Sie können auch größere Ordner haben sortieren zuerst: du -shx * | sort -hr. Für du:

  • -s, --summarize: zeigt nur eine Summe für jedes Argument an
  • -h, --human-readable: Druckgrößen in lesbarem Format (z. B. 1K 234M 2G)
  • -x, --one-file-system: Verzeichnisse auf verschiedenen Dateisystemen überspringen

Für sort:

  • -h, --human-numeric-sort: Vergleiche von Menschen lesbare Zahlen (zB 2K 1G)
Jorge Israel Peña
quelle
Dies ist eigentlich wirklich nützlich mit einer kleinen mod: du -s * | sort -nr.
Alex Budovski
5
Mit können Sie die Dateigrößen in einem für Menschen lesbaren Format halten du -sh * | sort -hr.
Jorge Israel Peña
du -shx * | sort -hrist gut, gibt aber nur das aktuelle Verzeichnis zurück. Wie würde ich das systemweit machen? Und wie könnte ich alles unter 100mb ausschließen? Vielen Dank.
TEM
Das hängt von der Aufforderung an der Shell ab. So *wird es auf alles im aktuellen Verzeichnis angewendet, aber Sie können es genauso einfach in z. B. ändern some/other/path/*oder das *Glob-Muster weglassen, wenn Sie es nur für ein einzelnes Verzeichnis als Ganzes ausführen möchten . Wenn Sie Dinge herausfiltern möchten, stellen Sie vielleicht eine separate Frage.
Jorge Israel Peña
Wenn Sie es systemweit rekursiv ausführen möchten, können Sie es mit findeinem Verzeichnisstamm verbinden und dessen -execParameter zum Aufrufen verwenden du. Das findProgramm selbst kann wahrscheinlich anhand der Dateigröße mit so etwas filtern size +100M. Siehe diese Frage . Vielleicht so etwas find / -size +100M -exec du -sh {} \; | sort -hr, obwohl das nicht getestet ist.
Jorge Israel Peña
13

ncdu

Ist einfach toll: CLI, ncurses-basiert, schnell, einfach. Installieren Sie es mit sudo apt install ncdu.

Bildbeschreibung hier eingeben

Öffnen Sie SEO
quelle
5

Grundsätzlich können Sie den Befehl du verwenden. etwas wie das

du -a /home | sort -rn |head -1

Weitere Optionen finden Sie auf der Manpage oder unter info du.

Oder Sie können GNU find verwenden.

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  
user31894
quelle
Hat 'find' unter Sun OS 5.10 eine Alternative zu -printf?
Alex Budovski
Gibt es eine Möglichkeit, den ersten Befehl (du ...) zum Herausfiltern von Verzeichnissen zu erhalten? Ich bin nur wirklich interessiert an Dateien, wie bei Ihrem zweiten Befehl.
Alex Budovski
5

Keine Kommandozeile, aber immer noch unix'y: kdirstat

Ich benutze es, um herauszufinden, wo der gesamte Speicherplatz ist, und es gefällt mir viel besser als Disk Usage Analyzer (auch bekannt als Baobab). Es ist eine der wenigen KDE-Apps, die in meiner GNOME-Umgebung toleriert werden ;-)

Bildbeschreibung hier eingeben

Laut kdirstat.sourceforge.net läuft es unter Solaris.

Während KDirStat ein KDE-Programm ist, läuft es problemlos auf jedem X11-Desktop, dh unter Linux, BSD und vielen anderen Unix-Systemen (Solaris, HP-UX, AIX, ...).

Ludwig Weinzierl
quelle
In Ubuntu: k4dirstat und qdirstat. Das letzte noch aktuell. Ich mag es nicht, dass sie Ordner löschen können
develCuy
3
du -a | sort -n

würde den Job machen. Wenn Sie baobab verwenden (es ist Teil der Gnome-Utils und daher wahrscheinlich bereits auf Ihrem System installiert), erhalten Sie eine schöne grafische Aufschlüsselung des verwendeten Speicherplatzes.

balpha
quelle
Gibt es einen Grund, -g anstelle von -n zu verwenden? "Verwenden Sie diese Option nur, wenn es keine Alternative gibt. Sie ist viel langsamer als --numeric-sort (-n) und kann beim Konvertieren in Gleitkommazahlen Informationen verlieren." Gnu.org/software/coreutils/manual/html_node/…
dort
@therefromhere: Ich habe die Manpage verwendet, die nicht ganz so ausführlich ist wie die von Ihnen verlinkte Site. Ich habe gerade die erste Option ausgewählt, die für den jeweiligen Fall geeignet ist. Aber du hast recht; Ich habe meine Antwort bearbeitet. Vielen Dank!
Balpha
3

Disk Usage Analyzer

Wenn Sie eine Debian / Ubuntu-basierte Distribution verwenden, stehen in den Repositories einige GUIs zur Verfügung, die Sie mithilfe von synaptic finden können.

Bildbeschreibung hier eingeben

hasen
quelle
3
du . -ha | sort -hr
  • -a, --all: Schreibanzahl für alle Dateien, nicht nur für Verzeichnisse
  • -h, --human-readable: Druckgrößen in lesbarem Format (z. B. 1K 234M 2G)
Faultier
quelle
1
Ich finde es sehr unterhaltsam, dass Sie diesen Befehl aussprechen können. Es klingt auch lustig.
Jtbandes
2
-1, das ist falsch. Das "-h" im Befehl du unterbricht die Sortierung.
dort
1
Es ist nicht falsch, nur nicht tragbar. -h ist ein GNUism. Verwenden Sie stattdessen -k unter Sun OS.
Ludwig Weinzierl
+ Ludwig Ich glaube nicht, dass du verstanden hast. Durch das Hinzufügen von -h werden die Zahlen für den Menschen lesbar, daher sind sie keine Zahlen mehr, die vom Sortierbefehl verwendet werden können. ZB würden die Dinge wie folgt sortiert werden: "760K 784M 788K 860K 944K 985M" Es sollte du -ha | sort -hroder du -ha | gsort -hr(auf OSX nach der Installation von Core-Utils)
Gerry
2

Mitternachtskommandant

Wenn Sie eine Listenausgabe mit nützlichen GUI- und Navigationsoptionen wünschen, installieren Sie den Midnight Commander ( mcin den meisten Paketmanagern) und aktivieren Sie das Kontrollkästchen "Verzeichnisgrößen anzeigen" im Befehlsmenü. Sie können auch Ctrl+ space.

Bildbeschreibung hier eingeben

Adam Matan
quelle