ls – Finn Christiansen https://blogarchive.finnchristiansen.de Softwareentwickler mit einer Vorliebe für freie Software und GNU / Linux Sat, 08 Dec 2018 16:50:58 +0000 de-DE hourly 1 https://wordpress.org/?v=5.1.1 https://blogarchive.finnchristiansen.de/wp-content/uploads/2017/01/cropped-FinnsBlog512-32x32.png ls – Finn Christiansen https://blogarchive.finnchristiansen.de 32 32 Große Dateien und Verzeichnisse unter Linux finden https://blogarchive.finnchristiansen.de/2016/08/03/grosse-dateien-und-verzeichnisse-unter-linux-finden/ https://blogarchive.finnchristiansen.de/2016/08/03/grosse-dateien-und-verzeichnisse-unter-linux-finden/#comments Wed, 03 Aug 2016 17:34:48 +0000 https://www.finnchristiansen.de/?p=151 Continue reading ]]> Wenn eine Partition einer Festplatte plötzlich ungewöhnlich voll ist, beginnt die Ursachensuche. Nicht immer stehen grafische Hilfsmittel zur Verfügung oder gar ein Paketmanager, mit dem Tools genau für diesen Zweck nachinstalliert werden könnten. Auf den meisten Distributionen steht aber
du
  (disk usage – GNU coreutils) zur Verfügung. Mit den passenden Parametern ist
du
  ein äußert praktisches Werkzeug.

Ohne Parameter aufgerufen zeigt

du
die Größe bzw. die Plattenbelegung des aktuellen Arbeitsverzeichnisses an und bezieht dabei rekursiv Unterverzeichnisse mit ein. Um das zu veranschaulichen, habe ich ein Testverzeichnis mit einigen Dateien und einem Unterverzeichnis mit wiederum einigen Dateien angelegt:

ls -l
insgesamt 1444
-rw-r--r-- 1 finn finn   32768  6. Jun 11:21 test1
-rw-r--r-- 1 finn finn   49152  6. Jun 11:21 test2
-rw-r--r-- 1 finn finn 1048576  6. Jun 11:21 test3
-rw-r--r-- 1 finn finn    4096  6. Jun 11:22 test4
-rw-r--r-- 1 finn finn  102400  6. Jun 11:22 test5
-rw-r--r-- 1 finn finn  204800  6. Jun 11:22 test6
-rw-r--r-- 1 finn finn   21504  6. Jun 11:22 test7
-rw-r--r-- 1 finn finn    5120  6. Jun 11:22 test8
drwxr-xr-x 2 finn finn    4096  6. Jun 11:23 testdir

Ruft man

du
  in diesem Verzeichnis nun auf, wird folgendes gezeigt:

du
556    ./testdir
2000    .

Die links angezeigten Größen sind in Kilobyte angegeben. Die Gesamtgröße beträgt also 2000 KB, wovon 556 auf das Unterverzeichnis

testdir
  entfallen. Bei vielen Unterverzeichnissen ist die Ausgabe vielleicht etwas lang und man möchte nur das Endergebnis angezeigt bekommen. Ebenso ist die Anzeige in Kilobyte nicht immer optimal und man möchte eine passende Einheit verwenden:

du -sch
2,0M .
2,0M insgesamt

Das sieht schon recht brauchbar aus. Wenn man jetzt die größten Dateien im Unterverzeichnis finden möchte, kann

du
  auch mit
sort
  kombiniert werden:

du -a | sort -n
4    ./test4
8    ./test8
24    ./test7
24    ./testdir/test9
32    ./test1
36    ./testdir/test11
48    ./test2
56    ./testdir/test12
100    ./test5
200    ./test6
436    ./testdir/test10
556    ./testdir
1024    ./test3
2000    .

Der Parameter

-a
  zeigt auch Dateien in der Ausgabe an und mit sort
-n
  werden die numerischen Größenangaben zur Sortierung genutzt.

Bei sehr vielen Dateien ist es vielleicht sinnvoll, die Ausgabe mit

tail
  ein wenig zu beschränken:

du -a | sort -n | tail -5
200 ./test6
436 ./testdir/test10
556 ./testdir
1024 ./test3
2000 .

Anstelle der 5 kann natürlich ein beliebiger Wert eingesetzt werden. Kehrt man die Sortierreihenfolge um und nutzt

head
  anstelle von
tail
 , einsteht eine Art Topliste der größten Dateien und Verzeichnisse, was mein persönlicher Favorit ist:

du -a | sort -nr | head -5
2000    .
1024    ./test3
556    ./testdir
436    ./testdir/test10
200    ./test6

Wie man sieht, lässt sich mit diesen wenigen Befehlen schon eine Menge erreichen. Aber auch

ls
  kann ein wenig dabei helfen, große Dateien in einem Verzeichnis (allerdings ohne Rekursion / Unterverzeichnisse) zu finden:

ls -lS
insgesamt 1444
-rw-r--r-- 1 finn finn 1048576  6. Jun 11:21 test3
-rw-r--r-- 1 finn finn  204800  6. Jun 11:22 test6
-rw-r--r-- 1 finn finn  102400  6. Jun 11:22 test5
-rw-r--r-- 1 finn finn   49152  6. Jun 11:21 test2
-rw-r--r-- 1 finn finn   32768  6. Jun 11:21 test1
-rw-r--r-- 1 finn finn   21504  6. Jun 11:22 test7
-rw-r--r-- 1 finn finn    5120  6. Jun 11:22 test8
-rw-r--r-- 1 finn finn    4096  6. Jun 11:22 test4
drwxr-xr-x 2 finn finn    4096  6. Jun 11:23 testdir

Eine weitere Alternative ist

find
 , welches man nutzen kann, um Dateien ab einer bestimmten Größe, hier beispielsweise ab 100 KB, zu finden:

find -size +100k ./test6 ./testdir/test10 ./test3

Wer es ein wenig komortabler haben möchte, sollte ich ncdu  ansehen, von dem ich einmal im fryboyter.de ncdu Beitrag gelesen habem.

]]>
https://blogarchive.finnchristiansen.de/2016/08/03/grosse-dateien-und-verzeichnisse-unter-linux-finden/feed/ 8