Suchen Sie nach einer Reihe von Befehlen, die mir die größten Dateien auf einem Laufwerk anzeigen.
command-line
disk-usage
Ryan Detzel
quelle
quelle
Antworten:
Wenn Sie nur große Dateien finden müssen, können Sie
find
mit der-size
Option. Der nächste Befehl listet alle Dateien auf, die größer als 10 MB sind ( nicht zu verwechseln mit 10 MB ):Wenn Sie Dateien mit einer bestimmten Größe suchen möchten, können Sie diese mit einer Suche mit einer "Größe unter" kombinieren. Der nächste Befehl findet Dateien zwischen 10MiB und 12MiB:
apt-cache search 'disk usage'
listet einige Programme auf, die für die Analyse der Festplattennutzung verfügbar sind. Eine sehr vielversprechende Anwendung istgt5
.Aus der Paketbeschreibung:
Im Abschnitt "Verwandte Pakete" von gt5 habe ich gefunden
ncdu
. Aus seiner Paketbeschreibung:quelle
-ls
Ausgabe ist fest codiert (siehe Quellcode fürpred_fls
und list_file- Funktionen). Sie können versuchen, die Ausgabe mit der-printf
Option zu approximieren , die Ausgabe mit awkfind ... -type f -exec ls -ldh {} \; | column -t
Ich benutze nur eine Kombination von
du
undsort
.Dann ist es ein Fall von Spülen und Wiederholen . Zielen Sie auf die Unterverzeichnisse ab, die Sie für zu groß halten, führen Sie den Befehl für sie aus und finden Sie heraus, was das Problem verursacht.
Hinweis: Ich benutze
du
das-x
Flag von 's' , um die Dinge auf ein Dateisystem zu beschränken (ich habe eine ziemlich komplizierte Anordnung von übergreifenden Dingen zwischen SSD und RAID5).Hinweis 2:
2>/dev/null
Leitet alle Fehlermeldungen in Vergessenheit. Wenn sie dich nicht stören, ist es nicht obligatorisch.quelle
du
Manpage: "Datenträgerverwendung jeder DATEI rekursiv für Verzeichnisse zusammenfassen."Meine Lieblingslösung verwendet eine Mischung aus mehreren dieser guten Antworten.
du
Argumente:-a
für "alle" Dateien und Verzeichnisse. Lassen Sie es nur für Verzeichnisse aus-BM
Ausgabe der Größen in Megabyte (M) Blockgrößen (B)2>/dev/null
- Fehlermeldungen "Berechtigung verweigert" ausschließen (danke @Oli)sort
Argumente:-n
für "numerisch"-r
für "umgekehrt" (vom größten zum kleinsten)head
Argumente:-n 50
für die nur Top 50 Ergebnisse.more
wenn Sie eine kleinere Zahl verwendenHinweis: Das Präfix soll
sudo
Verzeichnisse enthalten, auf die Ihr Konto nicht zugreifen darf.Beispiel mit den 10 größten Dateien und Verzeichnissen in / var (einschließlich der Gesamtsumme).
quelle
qbis Antwort ist richtig, aber es wird sehr langsam sein, wenn es viele Dateien gibt, da es für jedes Element einen neuen ls-Prozess startet.
Eine viel schnellere Version, die find verwendet, ohne untergeordnete Prozesse zu erzeugen, ist printf, um die Größe in Bytes (% s) und den Pfad (% p) zu drucken.
find "$directory" -type f -printf "%s - %p\n" | sort -n | tail -n $num_entries
quelle
Verwenden Sie den folgenden Einzeiler, um die größten Top-20-Verzeichnisse (rekursiv) im aktuellen Ordner anzuzeigen:
oder (eher Unix-orientiert):
Für die 20 größten Dateien im aktuellen Verzeichnis (rekursiv):
oder mit vom Menschen lesbaren Größen:
Daher sind diese Aliase nützlich, um sie in Ihren RC- Dateien zu haben (jedes Mal, wenn Sie sie brauchen):
quelle
Dies scheint die perfekte Anwendung für
find
:Dieser Befehl findet alle Dateien im Verzeichnis
$DIRECTORY
und führtls -s
sie aus. Der letzte Befehl gibt die zugewiesene Größe einer Datei plus den Dateinamen aus. Das Ergebnis wird numerisch sortiert und die letzten fünf Einträge werden angezeigt. Als Ergebnis sehen Sie die 5 größten Dateien in einem$DIRETORY
beliebigen Unterverzeichnis. Wenn Sie eingebentail -n 1
, wird nur die größte Datei angezeigt.Außerdem kann man viel mit spielen
find
. Sie können beispielsweise nach Dateien suchen, die jünger als n Tage sind (-ctime -n
) oder die bestimmten Benutzern gehören (-user johndoe
).quelle
Wenn ich mehr freien Speicherplatz auf Servern schaffen muss, verwende ich diesen Befehl. Alle Dateien, die größer als 50 MB sind, und "du -h" machen eine bessere Liste der Dateien und "sort -n" nach der Pipe machen Liste numerisch sortiert nach Dateigröße.
quelle
Probieren Sie Baobab aus, es gibt Ihnen einen grafischen Überblick über Dateien und Ordner, Sie können sehen, wo sich die echten Weltraumfresser befinden und sie mit einem Klick löschen https://help.ubuntu.com/community/Baobab
quelle
Um beispielsweise alle GB-Dateien zu finden, würde ich du und grep verwenden, obwohl die anderen hier erwähnten Methoden ebenfalls großartig erscheinen.
Sie können auch mit der Option --except, die Sie haben, ausgefallen werden.
quelle
Sie können Dateien auch nach Größe sortieren:
Es werden nur Dateien gefunden und
du -h
für jede Datei ausgeführt, die die Größe der Datei angibt. Zuletzt sortieren wir die Ausgabe vonfind
/du
nach der ersten Spalte (in lesbarem Format).Die zuletzt gedruckte Datei ist die größte.
quelle
Mit dem Befehl können Sie die größten Dateien anzeigen, während Sie die Verzeichnisse überspringen:
Um alle Dateien zu finden, die größer als 100 MB sind (dies ist nicht 100 MB, sehen Sie hier, wenn Sie verwirrt sind):
Mit dem folgenden Befehl werden die 5 größten Dateien im Ordner angezeigt
$DIRECTORY
:USING
du
: Mit dem folgenden Befehl, der du verwendet, werden die Verzeichnisse mit den 20 größten Größen im Basisarbeitsordner angezeigt:Um nun die größten Verzeichnisse / Dateien einschließlich der Unterordner anzuzeigen, führen Sie Folgendes aus:
Verwenden von
ls
:Führen Sie den folgenden Befehl aus, um die fünf größten Dateien im Verzeichnis / bin aufzulisten:
Sie können auch den hier gezeigten Disk Usage Analyzer oder Baobao verwenden .
quelle
Ein großartiges, benutzerfreundliches Tool, auf das in der Antwort auf eine ähnliche Frage verwiesen wird , ist
NCurses Disk Usage
tool:quelle