androide

Come ottenere le dimensioni di una directory in Linux

Come installare e configurare java (jre e jdk) su windows 10

Come installare e configurare java (jre e jdk) su windows 10

Sommario:

Anonim

Quando si elenca il contenuto di una directory utilizzando il comando ls , è possibile notare che la dimensione delle directory è quasi sempre di 4096 byte (4 KB). Questa è la dimensione dello spazio sul disco utilizzato per archiviare le meta-informazioni per la directory, non ciò che contiene.

Il comando che vorrai utilizzare per ottenere la dimensione effettiva di una directory è du , che è l'abbreviazione di "utilizzo del disco".

Ottenere le dimensioni di una directory

Il comando du visualizza la quantità di spazio per i file utilizzata dai file o dalle directory specificati. Se il percorso specificato è una directory, du riassume 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 visualizza l'utilizzo del disco della directory specificata 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 della directory /var , eseguire il comando seguente:

sudo du -sh /var

L'output sarà simile al seguente:

85G /var

Spieghiamo il comando e i suoi argomenti:

  • Il comando inizia con sudo perché la maggior parte dei file e delle directory all'interno della directory /var sono di proprietà dell'utente root e non sono leggibili dagli utenti normali. Se si omette sudo il comando du stamperà "du: impossibile leggere la directory". s - Visualizza solo la dimensione totale della directory specificata, non mostra i totali della dimensione del file per le sottodirectory. h - Stampa le dimensioni in un formato leggibile dall'uomo ( h ). /var - Il percorso della directory di cui vuoi ottenere la dimensione.

Cosa succede se si desidera visualizzare l'utilizzo del disco delle sottodirectory di primo livello? Hai due opzioni. Il primo è usare il simbolo asterisco ( * ) come mostrato di seguito, che significa "abbina tutto ciò che non inizia con un punto ( . )". L'opzione -c dice a du di stampare un totale complessivo di tutte le dimensioni:

sudo du -shc /var/*

24K /var/db 4.0K /var/empty 4.0K /var/games 77G /var/lib 4.0K /var/local 0 /var/lock 3.3G /var/log 0 /var/mail 4.0K /var/opt 0 /var/run 196K /var/spool 28K /var/tmp 85G total

Un altro modo per ottenere un rapporto sull'utilizzo del disco delle sottodirectory di primo livello è utilizzare l'opzione --max-depth :

sudo du -h --max-depth=1 /var

77G /var/lib 24K /var/db 4.0K /var/empty 4.0K /var/local 4.0K /var/opt 196K /var/spool 4.0K /var/games 3.3G /var/log 5.0G /var/cache 28K /var/tmp 85G /var 85G total

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, usa l'opzione --apparent-size . La "dimensione apparente" di un file è quanti dati sono effettivamente nel file.

sudo du -sh --apparent-size /var

Quando si trasferisce 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 sul disco usata sul sorgente quando viene visualizzata con du (senza --apparent-size ) non è la stessa dimensione sulla destinazione.

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 , è necessario reindirizzare l'output di du al comando sort per ordinare le directory in base alle loro dimensioni e quindi reindirizzare l'output al comando head che stamperà solo le prime 5 directory:

sudo du -h /var/ | sort -rh | head -5

85G /var/ 77G /var/lib 75G /var/lib/libvirt/images 75G /var/lib/libvirt 5.0G /var/cache/pacman/pkg

Conclusione

In Linux, puoi ottenere le dimensioni di una directory usando il comando du .

du terminal disk