GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare du Command in Linux

Il du (utilizzo del disco) è il comando utilizzato in Linux per controllare la dimensione della directory, inclusi gli altri contenuti e la dimensione dei singoli file.

Quando file e directory hanno iniziato a consumare una grande quantità di spazio su disco sui tuoi dischi rigidi, du è il comando migliore per sapere quali directory o file causano questo.

In questo tutorial impariamo come usare du command in Linux per controllare l'utilizzo del disco (file o directory).

Du comando e sintassi

La riga seguente mostra la sintassi del comando du:

du [options] [file or directory name]

Per impostazione predefinita, senza alcuna opzione, visualizza l'utilizzo del disco del file o della directory specificata e per ciascuna delle sottodirectory in byte. Se non viene menzionato alcun nome di file o directory, du comando visualizza l'utilizzo del disco della directory di lavoro corrente.

# du /boot
2508    /boot/grub2/fonts
3068    /boot/grub2/i386-pc
5592    /boot/grub2
4       /boot/efi/EFI/centos
8       /boot/efi/EFI
12      /boot/efi
16      /boot/loader/entries
20      /boot/loader
152440  /boot

Du comando con -a opzione stampa l'utilizzo del disco di tutti i file all'interno della directory.

# du -a /boot
7920    /boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64
3752    /boot/System.map-4.18.0-147.5.1.el8_1.x86_64
4       /boot/grub2/device.map
4       /boot/grub2/grub.cfg
4       /boot/grub2/grubenv
2504    /boot/grub2/fonts/unicode.pf2
2508    /boot/grub2/fonts
8       /boot/grub2/i386-pc/cs5536.mod
4       /boot/grub2/i386-pc/gcry_rsa.mod
8       /boot/grub2/i386-pc/lsacpi.mod
52      /boot/grub2/i386-pc/gcry_camellia.mod
4       /boot/grub2/i386-pc/cpio_be.mod
......
152440  /boot

Puoi vedere che stampa la dimensione totale alla fine del comando dove '152440' è la dimensione totale (in byte) della directory '/boot'.

Ottieni la dimensione totale della directory specificata

Per visualizzare la dimensione totale di una directory specificata devi usare l'opzione -s ma non riporterai le sottodirectory. L'esempio seguente mostra la dimensione totale della directory '/boot'.

# du -s /boot
152440  /boot

Puoi stampare l'utilizzo totale del disco da più directory come segue:

# du -s /boot /var
152440 /boot
332168 /var

Formato leggibile dall'uomo

Finora vediamo che la dimensione del disco è stata mostrata in byte che non è un formato molto leggibile dall'uomo. Per stampare l'output in kilobyte (K), megabyte (M) e gigabyte (G) dobbiamo usare -h opzione.

# du -h /boot
2.5M    /boot/grub2/fonts
3.0M    /boot/grub2/i386-pc
5.5M    /boot/grub2
4.0K    /boot/efi/EFI/centos
8.0K    /boot/efi/EFI
12K     /boot/efi
16K     /boot/loader/entries
20K     /boot/loader
149M    /boot

Il --si l'opzione è come -h opzione ma usa potenze di 1000 invece di 1024.

# du --si /boot
2.6M    /boot/grub2/fonts
3.2M    /boot/grub2/i386-pc
5.8M    /boot/grub2
4.1k    /boot/efi/EFI/centos
8.2k    /boot/efi/EFI
13k     /boot/efi
17k     /boot/loader/entries
21k     /boot/loader
157M    /boot

Per ottenere la dimensione totale di una directory specificata in un formato leggibile che è molto comunemente usato du command, usa il seguente comando:

# du -sh /boot
149M /boot

Unisci la dimensione totale generale

Questo è molto utile quando vuoi combinare la dimensione totale su più directory. Il seguente esempio du command combine (-c ) la dimensione totale del disco specificata (-s ) '/boot' e '/var' e stampa l'ultima riga in formato leggibile (-h ):

# du -csh /boot/ /var
149M    /boot/
317M    /var
466M    total

Visualizza la dimensione individuale di tutti i file e le directory

Usando il carattere jolly (*) possiamo stampare la dimensione individuale di ogni file e directory e quindi combinare la dimensione totale per stampare nell'ultima riga.

# du -csh /boot/*
184K    /boot/config-4.18.0-147.5.1.el8_1.x86_64
180K    /boot/config-4.18.0-80.7.1.el8_0.x86_64
12K     /boot/efi
0       /boot/grub
5.5M    /boot/grub2
53M     /boot/initramfs-0-rescue-3e729c2d7c094902af0333ce40564ffe.img
23M     /boot/initramfs-4.18.0-147.5.1.el8_1.x86_64.img
23M     /boot/initramfs-4.18.0-80.7.1.el8_0.x86_64.img
16M     /boot/initramfs-4.18.0-80.7.1.el8_0.x86_64kdump.img
20K     /boot/loader
3.7M    /boot/System.map-4.18.0-147.5.1.el8_1.x86_64
3.6M    /boot/System.map-4.18.0-80.7.1.el8_0.x86_64
7.6M    /boot/vmlinuz-0-rescue-3e729c2d7c094902af0333ce40564ffe
7.8M    /boot/vmlinuz-4.18.0-147.5.1.el8_1.x86_64
7.6M    /boot/vmlinuz-4.18.0-80.7.1.el8_0.x86_64
149M    total

Du comando con corrispondenza Pattern

Usando du command puoi eseguire il pattern matching. Nel comando seguente viene mostrato come trovare la dimensione del disco di tutte le directory che iniziano con 'bo'.

# du -sch /bo*
149M    /boot
217M    /bootstrap
366M    total

Uso del comando du per ottenere la dimensione apparente

Il --apparent-size l'opzione stampa le dimensioni apparenti (quantità effettiva di dati nel file) anziché l'utilizzo del disco.

# du --apparent-size /boot
2505    /boot/grub2/fonts
2544    /boot/grub2/i386-pc
5057    /boot/grub2
4       /boot/efi/EFI/centos
8       /boot/efi/EFI
12      /boot/efi
6       /boot/loader/entries
10      /boot/loader
151852  /boot

Controlla la dimensione della directory che include hard link

Usando il -l o --count-links opzione, le dimensioni vengono contate molte volte se collegate in modo rigido. Per impostazione predefinita, gli hard link non vengono visualizzati.

Ad esempio

# ls -li
 total 648
 755150 -rw-r--r-- 1 root root 4719 Apr 19 00:46 file1
 755152 -rw-r--r-- 2 root root 312519 Apr 19 00:47 file2
 755152 -rw-r--r-- 2 root root 312519 Apr 19 00:47 file2.hard
 755153 lrwxrwxrwx 1 root root 19 Apr 19 00:57 file2.soft -> /etc/sysconfig/init

Qui, file2.hard è il collegamento reale per file2. Ora nota l'output con -l e senza di essa.

# du -ah
 4.0K ./file2.soft
 316K ./file2
 12K ./file1
 340K .

# du -ahl
 4.0K ./file2.soft
 316K ./file2
 12K ./file1
 316K ./file2.hard
 656K .

Il comportamento predefinito per i collegamenti simbolici non è quello di dereferenziarli. Per dereferenziare i link simbolici, -L o --dereference viene utilizzata l'opzione

# du -ahL
 8.0K ./file2.soft
 316K ./file2
 12K ./file1
 344K .

(Nota che la dimensione di file2.soft è cambiata ora)

Il -P o --no-dereference l'opzione non dereferenzia questi collegamenti simbolici (che è il comportamento predefinito come indicato sopra).

Visualizza l'utilizzo del disco nelle sottodirectory di livello 'N'

Questa opzione indica al comando di elencare le sottodirectory e le sue dimensioni al livello di profondità desiderato.

Ad esempio, l'esempio seguente elenca le directory al primo livello solo nell'albero di directory corrente e le relative dimensioni. Anche il consumo totale di spazio è riportato qui. Nel caso impostiamo il --max-depth= a zero, quindi du command non elencherà nessuna sottodirectory e riporterà solo la dimensione della directory selezionata.

# du --max-depth=1 -h /boot/
7.1M /boot/grub
110M /boot/

Du comando per escludere file

Il comando Du può escludere una directory specifica usando il --exclude opzione. Nell'esempio seguente ho escluso la directory 'grub2':

# du  --exclude=grub2 /boot/
4       /boot/efi/EFI/centos
8       /boot/efi/EFI
12      /boot/efi
16      /boot/loader/entries
20      /boot/loader
146848  /boot/

Di seguito sono riportati i due esempi per mostrarti come escludere i file '*.obj' o '*.jpg'.

# du -h –exclude=’*.obj’
# du -h –exclude=’*.jpg’

Usa du command per stampare l'ora di modifica

L'ora di modifica di file e/o directory (o di file/directory nelle sottodirectory) può essere visualizzata con --time opzione.

# du /boot/ --time
4    2017-03-23 15:03    /boot/grub/locale
2348    2017-03-23 15:03    /boot/grub/fonts
2480    2017-03-23 15:03    /boot/grub/i386-pc
7212    2017-04-05 08:31    /boot/grub
112180    2017-04-05 08:31    /boot/

Usa du con altri comandi

Il comando Du può essere combinato con altri comandi utilizzando le pipe (|). Controlliamo alcuni esempi

Se vogliamo trovare le prime 3 directory per dimensione nella directory di lavoro corrente:

# du -skh * | sort -nr | head -3
386M    lib
252M    share
154M    lib64

Visualizza tutti i file e le directory ordinati per dimensione:

# du -sk * | sort -n
12160   libexec
37552   sbin
58900   bin
70048   src
157456  lib64
257492  share
394504  lib

Conclusione

In questo tutorial, abbiamo imparato come utilizzare du command in Linux per stimare l'utilizzo del disco per file e directory. Spero che ti sia piaciuto leggere e per favore lascia i tuoi suggerimenti nella sezione commenti qui sotto.


Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come usare il comando Su in Linux

  4. Come usare il comando ldconfig in Linux

  5. Come usare il comando ipset in Linux

Come utilizzare il comando sysctl in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux

Come utilizzare il comando Mkdir su Linux

Come usare il comando jobs in Linux

Come usare il comando schermo in Linux