GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere la dimensione di una directory in Linux

Quando si elenca il contenuto di una directory usando ls comando, potresti aver notato che la dimensione delle directory è quasi sempre di 4096 byte (4 KB). Questa è la dimensione dello spazio sul disco utilizzato per memorizzare 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".

Come ottenere la dimensione di una directory #

Il du Il comando visualizza la quantità di spazio file utilizzato 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 invocato 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 di /var directory, eseguiresti il ​​seguente comando:

sudo du -sh /var

L'output sarà simile a questo:

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 di /var directory sono di proprietà dell'utente root e non sono leggibili dagli utenti regolari. Se ometti sudo il du il comando stamperà "du:impossibile leggere la directory".
  • s - Visualizza solo la dimensione totale della directory specificata, non visualizzare i totali delle dimensioni dei file per le sottodirectory.
  • h - Stampa le dimensioni in un formato leggibile (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 consiste nell'utilizzare il simbolo dell'asterisco (* ) come mostrato di seguito, che significa "corrisponde a tutto ciò che non inizia con un punto (.). )”. Il -c l'opzione dice a du per 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 --max-depth opzione:

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 du comando mostra lo spazio su disco utilizzato dalla directory o dal file. Per trovare la dimensione apparente di una directory, usa il --apparent-size opzione. La "dimensione apparente" di un file è la quantità di dati effettivamente contenuta nel file.

sudo du -sh --apparent-size /var

Quando si trasferisce una directory tramite SCP, Rsync. o SFTP, la quantità di dati che viene trasferita sulla rete è la dimensione apparente dei file. Questo è il motivo per cui la dimensione dello spazio sul disco utilizzato sul sorgente quando visualizzato con du (senza --apparent-size ) non è la stessa della dimensione sulla destinazione.

Il du comando può essere combinato anche con altri comandi con pipe.

Ad esempio, per stampare le 5 directory più grandi all'interno di /var directory, devi reindirizzare l'output di du al sort comando per ordinare le directory in base alla loro dimensione e quindi reindirizzare l'output al head comando 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 la dimensione di una directory usando il du comando.

Se hai domande o commenti, lascia un commento qui sotto.


Linux
  1. Come trovare il file più vecchio in un albero di directory in Linux

  2. Come ottenere la dimensione della directory in Linux

  3. Come modificare la dimensione dell'MTU su Linux

  4. Come posso ottenere lo stato della tastiera in Linux?

  5. Come trovare la dimensione del buffer del socket di Linux

Come trovare la dimensione di una directory in Linux

Come trovare la dimensione totale di una directory in Linux

Come ottenere il numero di processori/core in Linux

Come copiare la directory su Linux

Come migrare la directory HOME su Linux

Come controllare la dimensione di file e directory su Linux