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.