Wie kann man verstehen, was Speicherplatz beansprucht?


86

Ich suche eine Linux-Alternative zu WinDirStat . Ich möchte wissen, was auf meinen Festplatten Speicherplatz beansprucht.

Ein Programm, das auf der Konsole funktioniert und keine Benutzeroberfläche erfordert, wird bevorzugt.


ncduist meine bevorzugte Antwort, aber ich sehe, dass die erste Antwort besagt, dass Sie Probleme damit haben, die nicht in Ihrer Frage stehen.
SDsolar

Antworten:


74

Aufgrund Ihrer Probleme bei der Installation von ncdu würde ich empfehlen, duund sortzusammen zu verwenden.

Zum Beispiel:

  • du /home | sort -rn (durchsucht alle Dateien / Verzeichnisse unter / home und sortiert sie vom größten zum kleinsten.
  • du -h /home | sort -rh(gleich, wird aber in MB / KB / etc angezeigt) - Beachten Sie, dass dies Coreutils 7.5 oder neuer erfordert ( sort --versionzur Überprüfung)

Sie können / home durch ein beliebiges Verzeichnis Ihrer Wahl ersetzen.


Das ist ausgezeichnet, danke für die Hilfe. Mein coreutils ist 5.97 - ist das der Grund, warum die Sortierreihenfolge von du -h nicht richtig ist?
Ripper234

Ja, Sie müssen sich du /home | sort -rnmit coreutils 5.97 zufrieden geben oder etwas 'Magie' mit Perl usw. verwenden, wie in ServerFault ( serverfault.com/q/62411/60012 )
NJ

2
OTOH, wenn es ein großes Unter-Unter-Verzeichnis gibt, wird sein Aufblähen mehrmals (für dieses Verzeichnis und jedes übergeordnete Verzeichnis) oben in den Ergebnissen angezeigt, und IMHO, das vom wahren Aufblähen ablenkt. Die unten vorgeschlagene Verwendung von "ncdu" könnte dabei helfen, ich werde es versuchen. =)
Lapo

2
Ich finde die Option -size auch nützlich, um alle Dateien unter einem bestimmten Namen zu finden. Zumindest für GNU find können Sie Folgendes tun: "find. -Size + 100M", um Dateien zu finden, die größer als 100M sind und sich unter dem aktuellen Verzeichnis befinden.
gabe.

89

Wenn Sie ein Befehlszeilentool möchten, bevorzuge ich ncdu , eine ncurses-Version von du. Es durchsucht die Festplatte (oder einen bestimmten Ordner) und zeigt dann die Speicherplatznutzung auf oberster Ebene an. Sie können ein bestimmtes Verzeichnis auswählen, um die entsprechende Zusammenfassung für dieses Verzeichnis zu erhalten, und ohne erneute Analyse zurückkehren:

Screenshot von ncdu


Wenn Sie mit einem GUI-Programm einverstanden sind , kommt Filelight WinDirStat am nächsten, das ich gefunden habe. Es zeigt eine grafische Darstellung des Platzverbrauchs:

Screenshot von Filelight

Mit ncduFilelight können Sie ein bestimmtes Verzeichnis auswählen, um die Aufschlüsselung für dieses Verzeichnis zu erhalten


4
Denken Sie nicht, dass QDirStat näher an WinDirStat ist?
Janus Troelsen

39

Beachten Sie , dass WinDirStat tatsächlich ein Port von KDirStat ist, einem Linux / KDE-Programm. Wenn Sie also nach einer Linux-Alternative zu WinDirStat suchen, sollten Sie sich unbedingt KDirStat ansehen . Es ist bereits in den meisten Distributionen enthalten, installieren Sie es einfach.

Eine weitere Alternative ist FileLight, das bereits von Michael Mrozek zitiert wurde, und das Konqueror-Plugin fsview(Sie können es eigenständig über die Befehlszeile ausführen).


16
Wow, ich habe das nie bemerkt (ich denke "Win" im Namen hätte ein Werbegeschenk sein sollen). Ein Mitarbeiter hat mich einmal gefragt, ob es eine Linux-Version von WinSCP gibt . Ich bin ein wenig gestorben
Michael Mrozek

3
@vorheriger Kommentar. Autsch. Autsch.
David Oneill

2
Beachten Sie, dass es K4DirStat für Ubuntu heißt, wenn es über das Software-Center installiert wird
y3sh

odersudo apt-get install k4dirstat
y3sh

34

Ein weiteres GUI-Programm ist: Baobab

Alt-Text


In der Tat, wenn ich auf Ubuntu bin, werde ich nicht die Mühe machen, nach einer Alternative zu suchen. baobapist gerade genug.
Phunehehe

Es zeigt auch die Anzahl der Dateien, die manchmal überprüft werden müssen, sowie den Speicherplatz
Golimar

9

Verwenden Sie QDirStat (früher KDirStat).

Es enthält ein Perl-Skript, das eine Cache-Datei auf dem Server / der Konsole generiert, ohne dass eine Benutzeroberfläche ausgeführt / installiert werden muss. Übertragen Sie es auf Ihren Desktop-Computer und zeigen Sie es im GUI-Client an.

Weitere Informationen finden Sie unter https://unix.stackexchange.com/a/256516/186308 .


es ist lächerlich schnell. sehr nettes Werkzeug
phil294

7

Ich bevorzuge die folgende Befehlszeile:

$  du -s -m -x * | sort -n

Aufschlüsselung duzeigt Datenträgerverwendung; -ssagt print die Summe für jedes Argument (jedes Element im aktuellen Verzeichnis), -msagt show die Größe in Megabyte. Dies erleichtert das Sortieren. sort versteht die -hAusgabe nicht wirklich . Das -xignoriert andere Dateisysteme; Dies ist nützlich , wenn man versucht , Raum Schweine zu finden in /var, und /var/spool/fooist ein anderes Dateisystem.


Wird die Top-Antwort nicht bereits verwendet du?
muru

Ja, aber du / home auf meinen Systemen gibt Zehntausende von Dateien zurück. Es ist mir selten wichtig, welche der 100 (sagen wir) größten dieser Dateien sind. Normalerweise möchte ich wissen, welche Unterverzeichnisse den meisten Speicherplatz beanspruchen.
P Joslin

Anstelle von -s habe ich --max-depth = 2 angegeben, da ich ein Verzeichnis vom Stammverzeichnis nach unten verschieben wollte, aber Ihre Antwort hat mich in diese Richtung geleitet. Vielen Dank!
John Eisbrener

6

Es gibt auch dieses coole Python-Skript von /www.vrplumber.com/programming/runsnakerun/

bzr branch lp:~mcfletch/squaremap/trunk squaremap

Es ist nicht das funktionsreichste, aber es wird von einem einzelnen Python-Skript ausgeführt, sodass es extrem portabel ist.

Alt-Text



4

Sie können auch GD Map ausprobieren , ein anderes GUI-Tool, das auf Baumkarten basiert.


3

xdiskusage ist sehr flexibel, leicht mit sehr schlanken Abhängigkeiten, einfach zu kompilieren.

Es zeigt einen Baum von links nach rechts, in dem Sie mit der Maus oder den Pfeiltasten navigieren, zoomen (klicken oder eingeben), einige Teile zur besseren Ansicht ausblenden, die Sortierreihenfolge, die Anzahl der Farben usw. mit den Tasten oder dem Kontextmenü ändern können.

Es ist so leicht, dass Sie es auf einer Remote-SSH-Verbindung mit guter Leistung verwenden können. In diesem Fall empfehle ich die -qBefehlszeilenoption, um die Fortschrittsanzeige zu deaktivieren, die angezeigt wird, während Dateien durchsucht werden.

Optional können Sie sich auch duvorher selbst ausführen .

Eine Situation ist ein entferntes Dateisystem, das voll oder nahezu voll ist. Rufen Sie auf diesem System du -ak | gzip >log_of_disk_usage.txt.gzdie Ausgabe ab und führen Sie sie gzip -dc log_of_disk_usage.txt.gz | xdiskusage -aqlokal aus.
Oder sogar ssh myremotesystem "cd /filesystem_near_full/ ; du -ak | gzip" > log_of_disk_usage.txt.gz, um das Ergebnis lokal zu speichern, ohne etwas aus der Ferne zu schreiben.

xdiskusage bietet nicht an, das Dateisystem zu ändern (z. B. in den Papierkorb verschieben usw.), aber Sie können einen Pfad in die Zwischenablage kopieren und diesen in einen Dateimanager, ein Terminal usw. einfügen.

xdiskusage Screenshot


2

Ich habe kürzlich das Befehlszeilentool (CLI, nicht TUI) verwendet: http://zevv.nl/play/code/philesight/

Es wird eine PNG-Datei erstellt, die Sie an einer anderen Stelle anzeigen können. Es hat auch ein CGI-Skript.

Höchstwahrscheinlich sind Sie nicht auf den Textmodus an Ihrer lokalen Arbeitsstation beschränkt, daher sollte dies angemessen sein.


1

Um die Dateien in einem bestimmten Verzeichnis nach Größe sortiert anzuzeigen, nachdem Sie das Verzeichnis mit du use gefunden haben, gehen Sie wie folgt vor:

ls -lrSh

1

Duc ( https://duc.zevv.nl/ ) funktioniert über die Befehlszeile.

Es kann wie folgt in Debian 9 installiert und verwendet werden:

# apt install duc
# duc index /
# duc graph /

Damit erhalten Sie eine Datei mit dem Namen duc.pngim aktuellen Verzeichnis. Jetzt können Sie diese Datei auf einen anderen GUI-fähigen Computer kopieren und sie sieht folgendermaßen aus: duc.png

HINWEIS: Duc ist der Ersatz für das Tool, das @OCTAGRAM in seiner Antwort erwähnt hat.

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.