GNU/Linux >> Znalost Linux >  >> Linux

Jak používat du Command v Linuxu

Du (použití disku) je příkaz používaný v Linuxu ke kontrole velikosti adresáře včetně jeho dalšího obsahu a také velikosti jednotlivých souborů.

Když soubory a adresáře začaly spotřebovávat velké množství místa na vašem pevném disku, pak du je nejlepším příkazem, který určí, které adresáře nebo soubory to způsobují.

V tomto tutoriálu se naučíme, jak používat příkaz du v Linuxu ke kontrole využití disku (souborů nebo adresářů).

Příkaz Du a syntaxe

Následující řádek ukazuje syntaxi příkazu du:

du [options] [file or directory name]

Standardně bez jakýchkoliv voleb zobrazuje využití disku daného souboru nebo adresáře a pro každý z podadresářů v bajtech. Pokud není uveden žádný název souboru nebo adresáře, pak du commad zobrazí využití disku aktuálního pracovního adresáře.

# 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

Příkaz Du s -a volba vypíše využití disku všemi soubory v adresáři.

# 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

Můžete vidět, že na konci příkazu vypíše celkovou velikost, kde '152440' je celková velikost (v bajtech) adresáře '/boot'.

Získat celkovou velikost zadaného adresáře

Chcete-li zobrazit celkovou velikost zadaného adresáře, musíte použít volbu -s, ale nebude hlásit podadresáře. Následující příklad ukazuje celkovou velikost adresáře '/boot'.

# du -s /boot
152440  /boot

Celkové využití disku můžete vytisknout z více adresářů následovně:

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

Formát čitelný člověkem

Zatím vidíme, že se velikost disku ukazovala v bajtech, což není pro člověka moc čitelný formát. Abychom mohli tisknout výstup v kilobajtech (K), megabajtech (M) a gigabajtech (G), musíme použít -h možnost.

# 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

--si volba je jako -h ale používá mocniny 1000 místo 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

Chcete-li získat celkovou velikost zadaného adresáře ve formátu čitelném pro člověka, který je velmi běžně používaný příkaz du, použijte následující příkaz:

# du -sh /boot
149M /boot

Kombinovat celkovou velikost

To je velmi užitečné, když chcete kombinovat celkovou velikost ve více adresářích. Následující příklad du command join (-c ) celková velikost zadaného disku (-s ) adresář '/boot' a '/var' a tisk na poslední řádek ve formátu čitelném pro člověka (-h ):

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

Zobrazit jednotlivé velikosti všech souborů a adresářů

Pomocí zástupných znaků (*) můžeme vytisknout jednotlivé velikosti každého souboru a adresáře a poté zkombinovat celkovou velikost pro tisk na posledním řádku.

# 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

Příkaz Du s párováním vzorů

Pomocí příkazu du můžete provádět porovnávání vzorů. Následující příkaz ukazuje, jak najít velikost disku všech adresářů začínajících na 'bo'.

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

Použití příkazu du k získání zdánlivé velikosti

--apparent-size volba vytiskne zdánlivé velikosti (skutečné množství dat v souboru) spíše než využití disku.

# 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

Zkontrolujte velikost adresáře, který obsahuje pevné odkazy

Pomocí -l nebo --count-links Při pevném propojení se velikosti započítají mnohokrát. Ve výchozím nastavení se pevné odkazy nezobrazují.

Například

# 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

Zde je soubor2.hard pevný odkaz na soubor2. Nyní si všimněte výstupu s -l a bez něj.

# 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 .

Výchozí chování pro symbolické odkazy není dereferencovat je. Pro dereferencování symbolických odkazů -L nebo --dereference je použita možnost

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

(Všimněte si, že velikost souboru2.soft se nyní změnila)

-P nebo --no-dereference volba nedereferencuje tyto symbolické odkazy (což je výchozí chování, jak je uvedeno výše).

Zobrazení využití disku v podadresářích na úrovni 'N'

Tato volba dává příkazu du pokyn, aby vypsal podadresáře a jejich velikost na naši požadovanou úroveň hloubky.

Například níže uvedený příklad uvádí adresáře do první vrstvy pouze v aktuálním stromu adresářů a jejich velikost. I zde se uvádí rovnoměrná celková spotřeba prostoru. V případě, že nastavíme --max-depth= na nulu, pak příkaz du nevypíše žádné podadresáře a bude hlásit pouze velikost vybraného adresáře.

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

Příkaz Du k vyloučení souborů

Příkaz Du může vyloučit konkrétní adresář pomocí --exclude volba. V následujícím příkladu jsem vyloučil adresář '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/

Níže jsou uvedeny dva příklady, které vám ukáží, jak vyloučit soubory „*.obj“ nebo „*.jpg“.

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

K vytištění času úpravy použijte příkaz du

Čas úpravy souborů a/nebo adresářů (nebo souborů/adresářů v podadresářích) lze zobrazit pomocí --time možnost.

# 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/

Používejte du s dalšími příkazy

Příkaz Du může být kombinován s jiným příkazem pomocí potrubí (|). Podívejme se na několik příkladů

Pokud chceme najít 3 top adresáře podle velikosti v aktuálním pracovním adresáři:

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

Zobrazit všechny soubory a adresáře seřazené podle velikosti:

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

Závěr

V tomto tutoriálu jsme se naučili používat příkaz du v Linuxu k odhadu využití disku pro soubory a adresáře. Doufám, že se vám čtení líbilo a zanechte prosím své návrhy v sekci komentářů níže.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat Su Command v Linuxu

  1. Jak používat Linux Screen Command

  2. Jak používat příkaz ldconfig v Linuxu

  3. Jak používat příkaz ipset v Linuxu

  1. Jak používat příkaz historie Linuxu

  2. Jak používat příkaz Disown v Linuxu

  3. Jak používat příkaz Linux SS