La comanda du -sh dir1 et diu quant ocupa en total un directori, amb tot el que conté (subdirectoris inclosos), en un format fàcil de llegir. És la manera més ràpida de respondre la pregunta «quant pesa aquesta carpeta?» des del terminal.
Peça a peça
du -sh dir1
| Peça | Què fa |
|---|---|
du | Disk usage: calcula l’espai que ocupen fitxers i directoris |
-s | Summarize: només mostra el total de cada argument, no cada subdirectori |
-h | Human-readable: mides en K, M, G (potències de 1024) |
dir1 | El directori que vols mesurar (pot ser una ruta absoluta o relativa) |
Sense -s, du mostraria una línia per a cada subdirectori. Sense -h, mostraria el resultat en blocs d’1 KiB.
Exemple
Suposem aquesta estructura:
dir1/
├── fitxer1.txt (2 MiB)
├── subdir1/
│ ├── fitxer2.txt (1 MiB)
│ └── fitxer3.txt (500 KiB)
└── subdir2/
└── fitxer4.txt (3 MiB)
$ du -sh dir1
6.5M dir1
El directori i tot el seu contingut ocupen 6,5 MiB al disc. Compara-ho amb el que passa sense -s:
$ du -h dir1
3.0M dir1/subdir2
1.5M dir1/subdir1
6.5M dir1
Més exemples
Diversos directoris alhora, amb un total al final (-c):
$ du -shc dir1 musica
6.5M dir1
800K musica
7.3M total
Tots els elements del directori actual, ordenats de més petit a més gran (sort -h entén les unitats K, M, G):
$ du -sh * | sort -h
4.0K notes.txt
800K musica
6.5M dir1
15M fotos estiu
El teu directori personal, sense sortir del sistema de fitxers on és (-x), i amagant els errors de permisos:
du -shx ~ 2>/dev/null
Excloure un tipus de fitxer del càlcul:
du -sh --exclude='*.iso' ~/Baixades
Mida al disc o mida real?
Fixa’t en notes.txt de l’exemple anterior: té 1.200 bytes, però du diu 4.0K. És perquè du mesura l’espai que ocupa al disc, i el sistema de fitxers reserva l’espai en blocs (normalment de 4 KiB). Si vols la suma de les mides dels fitxers, com la que veus amb ls -l, fes servir --apparent-size:
$ du -sh --apparent-size notes.txt
1.2K notes.txt
En directoris amb molts fitxers petits la diferència pot ser gran. En fitxers dispersos (sparse), com les imatges de disc de màquines virtuals, passa el contrari: la mida aparent pot ser molt més gran que l’espai ocupat de debò.
Compte amb…
- Permisos. Si no pots llegir algun subdirectori,
dumostraPermission deniedi el total queda per sota del real. Per mesurar directoris del sistema, fes servirsudo du -sh /var. - Lentitud.
duha de recórrer tots els fitxers. En directoris enormes o en unitats de xarxa pot trigar força. - Enllaços durs. Si un fitxer té diversos enllaços durs dins del mateix directori,
duel compta una sola vegada.
Comandes relacionades
- du: la comanda completa, amb totes les opcions.
- du -sk * | sort -nr i du -h –max-depth=1 | sort: trobar quins directoris ocupen més.
- df: espai lliure de cada disc.
ncdu: explorador interactiu de l’espai en disc (sudo apt install ncdu).