Quando si elenca il contenuto di una directory utilizzando il comando ls
, potresti aver notato che la dimensione delle directory è quasi sempre 4096 byte (4 KB). Questa è la dimensione dello spazio sul disco che viene utilizzata per memorizzare le meta-informazioni per la directory, non quello che contiene.
Il comando che vorresti usare per ottenere la dimensione effettiva di una directory è du
, abbreviazione di “disk usage”.
Ottenere le dimensioni di una directory #
Il mostra la quantità di spazio per i file utilizzata dai file o dalle directory specificati. Se il percorso specificato è una directory, du
riepiloga l’utilizzo del disco di ciascuna sottodirectory in quella directory . Se non viene specificato alcun percorso, du
segnala l’utilizzo del disco della directory di lavoro corrente.
Quando viene richiamato senza alcuna opzione, du
mostra l’utilizzo del disco della directory data e di ciascuna delle sue sottodirectory in byte.
In genere, si desidera visualizzare lo spazio occupato dalla directory in un formato leggibile dall’uomo. Ad esempio, per ottenere la dimensione totale del /var
, dovresti eseguire il seguente comando:
L’output sarà simile a questo:
Spieghiamo il comando e i suoi argomenti:
- Il comando inizia con
sudo
perché la maggior parte dei file e delle directory all’interno del Le directory/var
sono di proprietà dell’utente root e non sono leggibili dagli utenti normali. Se omettisudo
il comandodu
stamperà “du: can’t read directory”. -
s
– Visualizza solo le dimensioni totali della directory specificata, non visualizzare i totali delle dimensioni dei file per le sottodirectory. -
h
– Dimensioni di stampa in un formato leggibile dall’uomo (h
). -
/var
– Il percorso della directory che desideri ottenere la dimensione.
E se si desidera visualizzare l’utilizzo del disco delle sottodirectory di primo livello? Sono disponibili due opzioni. La prima consiste nell’usare il simbolo asterisco (*
) come mostrato di seguito, che significa” abbina tutto ciò che non inizia con un punto (.
) ”. L’opzione -c
indica a du
di stampare un totale generale di tutte le dimensioni:
Un altro modo per ottenere un rapporto sull’utilizzo del disco delle sottodirectory di primo livello consiste nell’usare l’opzione --max-depth
:
Per impostazione predefinita, il comando du
mostra lo spazio su disco utilizzato dalla directory o dal file. Per trovare la dimensione apparente di una directory, utilizza l’opzione --apparent-size
. La “dimensione apparente” di un file è la quantità di dati effettivamente presenti nel file.
Quando trasferisci una directory tramite SCP, Rsync. O SFTP la quantità di dati trasferiti sulla rete è la dimensione apparente dei file. Questo è il motivo per cui la dimensione dello spazio su disco utilizzata nella sorgente quando visualizzata con du
(senza --apparent-size
) non è la stessa della dimensione del target.
Il comando du
può anche essere combinato con altri comandi con pipe.
Ad esempio, per stampare le 5 directory più grandi all’interno della directory /var
, devi reindirizzare l’output di du
al comando sort
per ordinare le directory in base alla loro dimensione e quindi reindirizzare l’output al comando head
che verrà stampato solo le prime 5 directory:
Conclusione #
In Linux, tu può ottenere la dimensione di una directory utilizzando il comando du
.