2009-07-21 06:54:48 +0000 2009-07-21 06:54:48 +0000
134
134

Linux-Dienstprogramm zum Auffinden der größten Dateien/Verzeichnisse

Ich suche ein Programm, das mir zeigt, welche Dateien/Verzeichnisse den meisten Platz belegen, so etwas wie:

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

Ich weiß, dass es in KDE3 möglich ist, aber ich möchte das lieber nicht machen - KDE4 oder Kommandozeile werden bevorzugt.

Antworten (16)

200
200
200
2010-07-07 15:31:29 +0000

Ich verwende immer ncdu. Es ist interaktiv und sehr schnell.

131
131
131
2012-03-06 19:56:10 +0000

Um die größten 10 Dateien zu finden (linux/bash):

find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Um die größten 10 Verzeichnisse zu finden:

find . -type d -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

Der einzige Unterschied ist -type {d:f}.

Behandelt Dateien mit Leerzeichen in den Namen und erzeugt menschenlesbare Dateigrößen in der Ausgabe. Die größte Datei wird zuletzt aufgelistet. Das Argument für tail ist die Anzahl der Ergebnisse, die Sie sehen (hier die 10 größten).

Es gibt zwei Techniken, um Leerzeichen in Dateinamen zu behandeln. Das find -print0 | xargs -0 verwendet Null-Begrenzungszeichen anstelle von Leerzeichen, und das zweite xargs -I{} verwendet Zeilenumbrüche anstelle von Leerzeichen zum Beenden von Eingabeelementen.

Beispiel:

$ find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

  76M ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M ./tmp/projects/onthisday/onthisday.tar.gz
  114M ./Dropbox/snapshots/weekly.tgz
  114M ./Dropbox/snapshots/daily.tgz
  114M ./Dropbox/snapshots/monthly.tgz
  117M ./Calibre Library/Robert Martin/cc.mobi
  159M ./.local/share/Trash/files/funky chicken.mpg
  346M ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
37
37
37
2009-07-21 07:19:02 +0000

Für einen schnellen Überblick:

du | sort -n

listet alle Verzeichnisse mit dem größten letzten auf.

du --max-depth=1 * | sort -n

oder, wiederum unter Vermeidung des redundanten * :

du --max-depth=1 | sort -n

listet alle Verzeichnisse im aktuellen Verzeichnis mit dem größten letzten auf.

(der Parameter -n für die Sortierung ist erforderlich, damit das erste Feld als Zahl und nicht als Text sortiert wird, aber das schließt die Verwendung des Parameters -h für du aus, da wir eine signifikante Zahl für die Sortierung benötigen)

Andere Parameter für du sind verfügbar, wenn Sie z. B. symbolischen Links folgen wollen (die Voreinstellung ist, symbolischen Links nicht zu folgen) oder nur die Größe des Verzeichnisinhalts ohne Unterverzeichnisse anzeigen wollen. du kann sogar das Datum und die Uhrzeit in die Liste aufnehmen, wann eine Datei im Verzeichnis zuletzt geändert wurde.

23
23
23
2009-07-24 04:26:50 +0000

Für die meisten Dinge bevorzuge ich CLI-Tools, aber für die Laufwerksnutzung mag ich wirklich filelight . Die Darstellung ist für mich intuitiver als jedes andere Speicherplatzverwaltungswerkzeug, das ich kenne.

20
20
20
2013-02-18 04:35:03 +0000

Filelight ist besser für KDE-Benutzer, aber der Vollständigkeit halber (der Fragentitel ist allgemein) muss ich erwähnen, dass Baobab in Ubuntu enthalten ist, auch bekannt als Disk Usage Analyzer:

8
8
8
2009-07-22 10:00:12 +0000

Ein GUI-Tool, * KDirStat **, zeigt die Daten sowohl in Tabellenform als auch grafisch an. Sie können sehr schnell sehen, wo der meiste Platz verbraucht wird.

Ich bin nicht sicher, ob dies genau das KDE-Tool ist, das Sie nicht wollten, aber ich denke, es sollte trotzdem in einer Frage wie dieser erwähnt werden. Es ist gut und viele Leute kennen es wahrscheinlich nicht - ich selbst habe erst kürzlich davon erfahren.

5
5
5
2009-07-21 07:06:07 +0000

Eine Kombination ist unter Unix immer der beste Trick.

du -sk $(find . -type d) | sort -n -k 1

zeigt die Verzeichnisgrößen in KB an und sortiert so, dass das größte am Ende steht.
Tree-view braucht allerdings etwas mehr Fu… ist das wirklich nötig?

Beachten Sie, dass dieser Scan über Verzeichnisse verschachtelt ist, so dass er für die höheren Verzeichnisse wieder Unterverzeichnisse zählt und das Basisverzeichnis . am Ende als Summe der Auslastung auftaucht.

Sie können jedoch eine Tiefensteuerung für die Suche verwenden, um in einer bestimmten Tiefe zu suchen.
Und, je nachdem, was Sie wollen, können Sie die Suche sogar noch weiter einschränken. Die Tiefensteuerung von find mit -maxdepth und -mindepth kann auf eine bestimmte Unterverzeichnistiefe beschränken.


Hier ist eine verfeinerte Variante für Ihr arg-zu-lang Problem

find . -type d -exec du -sk {} \; | sort -n -k 1
3
3
3
2009-07-21 11:35:45 +0000

Ich mag gt5 . Sie können in der Baumstruktur navigieren und Unterverzeichnisse öffnen, um weitere Details zu erhalten. Es verwendet einen Textmodus-Webbrowser, wie z. B. lynx, um die Ergebnisse anzuzeigen. Installieren Sie elinks für beste Ergebnisse.

2
2
2
2009-07-21 07:00:04 +0000

Obwohl es Ihnen keine solche verschachtelte Ausgabe liefert, versuchen Sie es mit du

du -h /path/to/dir/

Wenn Sie das in meinem Dokumente-Ordner ausführen, erhalten Sie die folgende Ausgabe:

josh-hunts-macbook:Documents joshhunt$ du -h
  0B ./Adobe Scripts
  0B ./Colloquy Transcripts
 23M ./Electronic Arts/The Sims 3/Custom Music
  0B ./Electronic Arts/The Sims 3/InstalledWorlds
364K ./Electronic Arts/The Sims 3/Library
 77M ./Electronic Arts/The Sims 3/Recorded Videos
101M ./Electronic Arts/The Sims 3/Saves
 40M ./Electronic Arts/The Sims 3/Screenshots
1.6M ./Electronic Arts/The Sims 3/Thumbnails
387M ./Electronic Arts/The Sims 3
387M ./Electronic Arts
984K ./English Advanced/Documents
1.8M ./English Advanced
  0B ./English Extension/Documents
212K ./English Extension
100K ./English Tutoring
5.6M ./IPT/Multimedia Assessment Task
720K ./IPT/Transaction Processing Systems
8.6M ./IPT
1.5M ./Job
432K ./Legal Studies/Crime
8.0K ./Legal Studies/Documents
144K ./Legal Studies/Family/PDFs
692K ./Legal Studies/Family
1.1M ./Legal Studies
380K ./Maths/Assessment Task 1
388K ./Maths
[...]

Dann können Sie die Ausgabe sortieren, indem Sie sie zu sort

du /path/to/dir | sort -n
``` durchleiten
1
1
1
2013-05-15 21:52:25 +0000

Obwohl es von Vorteil ist, die prozentuale Festplattennutzung jeder Datei/jedes Verzeichnisses zu ermitteln, reicht es meistens aus, die größten Dateien/Verzeichnisse auf der Festplatte zu kennen.

Mein Favorit ist also dieser:

# du -a | sort -n -r | head -n 20

Und die Ausgabe ist wie folgt:

28626644 .
28052128 ./www
28044812 ./www/vhosts
28017860 ./www/vhosts/example.com
23317776 ./www/vhosts/example.com/httpdocs
23295012 ./www/vhosts/example.com/httpdocs/myfolder
23271868 ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576 ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700 ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748 ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852 ./www/vhosts/example.com/stats
4479728 ./www/vhosts/example.com/stats/logs
4437900 ./www/vhosts/example.com/stats/logs/access_log.processed
401848 ./lib
323432 ./lib/mysql
246828 ./lib/mysql/mydatabase
215680 ./www/vhosts/example.com/stats/webstat
182364 ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304 ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144 ./www/vhosts/example.com/httpdocs/tmp/ccc.sql
1
1
1
2012-09-06 05:27:20 +0000

Hier ist das Skript, das dies automatisch für Sie erledigt. http://www.thegeekscope.com/linux-script-to-find-largest-files/

Nachfolgend sehen Sie die Beispielausgabe des Skripts:

**# sh get_largest_files.sh / 5**

[SIZE (BYTES)] [% OF DISK] [OWNER] [LAST MODIFIED ON] [FILE] 

56421808 0% root 2012-08-02 14:58:51 /usr/lib/locale/locale-archive
32464076 0% root 2008-09-18 18:06:28 /usr/lib/libgcj.so.7rh.0.0
29147136 0% root 2012-08-02 15:17:40 /var/lib/rpm/Packages
20278904 0% root 2008-12-09 13:57:01 /usr/lib/xulrunner-1.9/libxul.so
16001944 0% root 2012-08-02 15:02:36 /etc/selinux/targeted/modules/active/base.linked

Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes [0% of Total Disc Space]

***Note: 0% represents less than 1%***

Sie werden dieses Skript sehr praktisch und nützlich finden!

1
1
1
2014-05-29 03:39:47 +0000

So finden Sie die 25 wichtigsten Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen:

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

Der gibt die obersten 25 Dateien aus, indem er nach der Größe der Dateien über den Piped-Befehl “sort -nr -k5” sortiert.

1
1
1
2015-04-10 12:07:49 +0000

Eine andere Alternative ist agedu , das den Speicherplatz nach der letzten Zugriffszeit aufschlüsselt, was es einfacher macht, platzverschwenderische Dateien zu finden.

Es funktioniert sogar auf einem Server ohne X-Windows, indem es temporäre Webseiten bereitstellt, so dass die Nutzung aus der Ferne mit Diagrammen analysiert werden kann. Angenommen, die IP-Adresse des Servers lautet 192.168.1.101, dann können Sie Folgendes in die Befehlszeile des Servers eingeben:

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

Dies gibt den Benutzernamen, das Passwort und die URL aus, mit der Sie auf die “GUI” zugreifen und die Ergebnisse durchsuchen können. Wenn Sie fertig sind, beenden Sie agedu mit Ctrl+D auf dem Server.

0
0
0
2010-07-07 11:05:40 +0000
du -chs /*

Zeigt Ihnen eine Liste des Stammverzeichnisses.

0
0
0
2013-08-18 12:36:57 +0000

Um die Liste noch ein wenig zu vervollständigen, füge ich meinen Lieblings-Disk Usage Analyzer hinzu, der xdiskusage ist.

Die GUI erinnert mich an einige andere gute alte X-Utilities, sie ist schnell und nicht aufgebläht, aber man kann trotzdem leicht in der Hierarchie navigieren und hat einige Anzeigeoptionen:

$ xdiskusage /usr

0
0
0
2015-03-05 13:44:05 +0000

Versuchen Sie den 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 menschenlesbaren Größen:

ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20

Der zweite Befehl, um unter OSX/BSD richtig zu funktionieren (da sort nicht -h hat), müssen Sie sort von coreutils installieren.

Diese Aliase sind also 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'