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
sudoperché la maggior parte dei file e delle directory all’interno del Le directory/varsono di proprietà dell’utente root e non sono leggibili dagli utenti normali. Se omettisudoil comandodustamperà “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.