Espai en disc a Linux

du -sk * | sort -nr a Linux: què ocupa més espai



La canonada du -sk * | sort -nr llista tot el que hi ha al directori actual ordenat per l’espai que ocupa, de més gran a més petit. És el truc clàssic per trobar d’un cop d’ull quin directori o fitxer s’està menjant el disc.

Peça a peça

du -sk * | sort -nr
PeçaQuè fa
duCalcula l’espai que ocupen fitxers i directoris
-sUn sol total per a cada element, sense detallar-ne els subdirectoris
-kMides en KiB (blocs de 1024 bytes), sempre amb números sense unitats
*El shell el substitueix per tots els fitxers i directoris del directori actual (excepte els ocults)
sortOrdena les línies
-nOrdre numèric: 800 va abans que 6644 (en ordre alfabètic seria al revés)
-rOrdre invers: de més gran a més petit

La clau és -k: com que totes les mides surten en la mateixa unitat i sense lletres, sort -n les pot ordenar correctament.

Exemple

$ du -sk * | sort -nr
15360	fotos estiu
6644	dir1
800	musica
4	notes.txt

Les mides són en KiB: fotos estiu ocupa 15.360 KiB (15 MiB), dir1 uns 6,5 MiB, musica 800 KiB i notes.txt 4 KiB (el mínim que ocupa un fitxer petit en un sistema de fitxers amb blocs de 4 KiB).

Fixa’t que fotos estiu té un espai al nom i surt bé: du rep cada nom com un argument separat.

Variants útils

Només els 10 més grans:

du -sk * | sort -nr | head

Amb mides llegibles. Aquí no pots fer servir sort -n, perquè 15M i 800K no són números; GNU sort té l’opció -h, que entén les unitats:

$ du -sh * | sort -hr
15M	fotos estiu
6.5M	dir1
800K	musica
4.0K	notes.txt

Incloure-hi els fitxers i directoris ocults (els que comencen per punt):

du -sh .[!.]* * 2>/dev/null | sort -hr

O bé, en lloc de *, deixar que du recorri un sol nivell (inclou els ocults i el total del directori, .):

du -h --max-depth=1 | sort -hr

Ho tens explicat a du -h –max-depth=1 | sort.

Compte amb…

  • Argument list too long. En un directori amb desenes de milers de fitxers, * es pot convertir en una llista massa llarga per a la comanda. Llavors fes servir du --max-depth=1.
  • Errors de permisos. Si analitzes directoris del sistema sense sudo, veuràs molts Permission denied i els totals seran incomplets. Afegeix 2>/dev/null per amagar els missatges, o executa-ho amb sudo.
  • Altres discos muntats a dins. Si a sota hi ha un disc extern o una unitat de xarxa muntada, du també la compta. Amb -x es queda al mateix sistema de fitxers.

Una alternativa interactiva: ncdu

Si has de fer neteja sovint, ncdu fa això mateix però de manera interactiva: navegues pels directoris amb les fletxes, ordenats per mida, i pots esborrar des d’allà mateix.

sudo apt install ncdu
ncdu -x /

Comandes relacionades