Come ottenere la dimensione di una directory in Linux

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 ometti sudo il comando du 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.

Write a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *