Introduzione

Il comando du, abbreviazione di "disk usage", indica la quantità stimata di spazio su disco utilizzata da determinati file o directory. È praticamente utile per trovare file e directory che occupano grandi quantità di spazio su disco.

Come usare il comando du

La sintassi generale per il comando du è la seguente:

du [OPTIONS]... DIR...

Se il parametro DIR è una directory, du riassumerà l'utilizzo del disco di ciascun file e sottodirectory in quella directory. Se DIR non viene specificato, du riporterà l'utilizzo del disco della directory di lavoro corrente .

Se eseguito senza alcuna opzione, du visualizza l'utilizzo del disco del file o della directory e di ciascuna delle sue sottodirectory in byte.

du ~/Documents

Puoi anche passare più file e directory al comando du come argomenti:

du ~/Documents ~/Video ~/.zshrc

Se esegui du su un file o una directory per cui non hai i permessi, otterrai qualcosa come "du: cannot read directory". In questa situazione, dovrai anteporre il comando con sudo.

du ha molte opzioni, delineeremo solo quelle usate più frequentemente.

L'opzione -a indica di segnalare l'utilizzo dello spazio su disco di ciascun file all'interno della directory.

du -a ~/Documents

Di solito, si desidera visualizzare solo lo spazio occupato dalla directory specificata in un formato leggibile dall'uomo. Per farlo, usa l'opzione -h.

Ad esempio, per ottenere la dimensione totale di tutte le sottodirectory di /var/lib, eseguire il comando seguente:

sudo du -h /var

Stiamo utilizzando sudo  perché la maggior parte dei file e delle directory all'interno della directory /var/lib sono di proprietà dell'utente root e non sono leggibili dagli utenti normali. L'output sarà simile al seguente:

...
32K     /var/lib/polkit-1
604M    /var/lib
1.4G    /var

Per segnalare solo la dimensione totale della directory specificata e non per le sottodirectory utilizzare l'opzione -s:

sudo du -sh /var
1.4G    /var

L'opzione -c permette di calcolare un totale generale. Ciò è utile quando si desidera ottenere la dimensione combinata di due o più directory.

sudo du -csh /var/log /var/lib
670M    /var/log
604M    /var/lib
1.3G    total

Se si desidera visualizzare l'utilizzo del disco delle sottodirectory di livello n, utilizzare l'opzione --max-depth e specificare il livello di sottodirectory. Ad esempio, per ottenere un rapporto sulle directory di primo livello dovresti usare:

sudo du -h --max-depth=1 /var/lib
...
23M     /var/lib/dpkg
4.0K    /var/lib/misc
4.0K    /var/lib/mysql-keyring
8.0K    /var/lib/ureadahead
12K     /var/lib/private
32K     /var/lib/polkit-1
604M    /var/lib

Il comportamento predefinito dell'utility du è di riutilizzare lo spazio su disco utilizzato dalla directory o dal file. Per trovare la dimensione apparente di un file, utilizzare l'opzione --apparent-size La "apparent size" di un file è quanti dati sono effettivamente nel file.

sudo du -sh --apparent-size /var/lib
593M    /var/lib

du ti permette anche di usare il pattern shell. Ad esempio, per ottenere la dimensione di tutte le directory che iniziano con "li", dovresti eseguire:

sudo du -csh /li*
479M    /lib
4.0K    /lib64
479M    total

Ulteriori comando con du

Il comando du può essere combinato con altri comandi con pipe.

Ad esempio, per stampare le 5 directory più grandi all'interno della directory /var, si utilizza il comando sort insieme al comando du per ordinare le directory in base alle loro dimensioni e quindi reindirizzare l'output al comando head che stamperà solo le 5 directory principali:

sudo du -h /var/ | sort -rh | head -5
1.4G    /var/
670M    /var/log
604M    /var/lib
561M    /var/log/journal
553M    /var/log/journal/3e8adc78daa34283b1c71dea860d53b4

Conclusione

Ormai dovresti avere una buona conoscenza di come usare il comando du. A differenza del comando df , il comando du fornisce una stima dello spazio su disco utilizzato da determinati file o directory.

Puoi visualizzare tutte le opzioni del comando du digitando man du dal terminale.