Du znamená Disk Usage.
Příkaz Linux du se používá pro shrnutí využití disku z hlediska velikosti souboru. Lze jej použít se složkami k získání celkového využití disku. Tento článek poskytuje několik příkladů, jak efektivně používat příkaz du.
Všechny zde uvedené příklady du jsou spuštěny v adresáři obsahujícím následující obsah:
$ ls linuxKernel redhat testfile.txt ubuntu
1. Základní příklad
$ du -a 0 ./redhat/rh7 4 ./redhat 4 ./testfile.txt 0 ./linuxKernel 0 ./ubuntu/ub10 4 ./ubuntu 16 .
Ve výše uvedeném příkladu jsem použil příznak -a k zobrazení využití disku všemi soubory a adresáři. Je to proto, že pokud není použito -a, jsou uvedeny pouze adresáře, které zabírají nějaký disk. Například:
$ du 4 ./redhat 4 ./ubuntu 16 .
Nyní tedy dostáváme základní představu o tom, jak používat příkaz du, ale stejně jako pro mě by bylo pro někoho těžké pochopit, co tato čísla ve výstupu znamenají?
Přejdeme k dalším příkladům a mraky se vyjasní vypnuto.
2. Zobrazte výstup ve formě čitelné pro člověka pomocí -h
$ du -ah 0 ./redhat/rh7 4.0K ./redhat 4.0K ./testfile.txt 0 ./linuxKernel 0 ./ubuntu/ub10 4.0K ./ubuntu 16K .
Vidíme tedy, že ve výše uvedeném příkladu jsem použil příznak -h spolu s příznakem -a. Parametr -h se používá k získání výstupu ve formátu čitelném pro člověka. Jak můžete vidět, výše uvedený výstup je snáze srozumitelný, protože využití disku je uvedeno jako „K“.
3. Zobrazte celkový součet ve výstupu pomocí -c
Příklad, který používám, má malou adresářovou strukturu. Dalo by se snadno vypočítat celkové využití disku v adresáři ručním výpočtem. Ale ve scénáři v reálném čase není ruční výpočet praktický. Existuje tedy příznak, jehož prostřednictvím lze získat celkové využití ve výstupu.
$ du -ahc 0 ./redhat/rh7 4.0K ./redhat 4.0K ./testfile.txt 0 ./linuxKernel 0 ./ubuntu/ub10 4.0K ./ubuntu 16K . 16K total
Vidíme tedy, že pomocí parametru -c lze získat celkové využití ve výstupu.
4. Zobrazte pouze celkový počet pomocí -s
Pokud chcete načíst pouze celkovou velikost ve formě souhrnu, použijte parametr -s.
$ du -sh 7.3G .
Vidíme tedy, že ve výše uvedeném výstupu byla zobrazena pouze celková velikost.
5. Vstupte vstupní soubory z stdin pomocí ‚–files0-from=-‘
Pokud nastane situace, kdy chcete na cestách poskytnout vstup „du“, pak je to možné prostřednictvím příznaku „–files0-from“.
$ du -ah --files0-from=- copy12K copy file12K file helloWorld12K helloWorld ^C $
Všimněte si, že jsme předali hodnotu jako „-“ do příznaku „–files0-from“, abychom indikovali „du“ pro zahájení přijímání názvů souborů ze stdin. Po zadání každého názvu souboru stiskněte dvakrát ctrl+D, aby se vytvořil výstup pro tento soubor.
6. Ukončete výstup null byte pomocí -0
Pokud si přejete vytvořit každý výstup zakončený bez nového řádku, ale s prázdným bajtem, použijte příznak -0.
$ du -am -0 0 ./redhat/rh71 ./redhat1 ./testfile.txt0 ./linuxKernel0 ./ubuntu/ub101 ./ubuntu1
Vidíme tedy, že výše uvedený výstup byl vytvořen na jediném řádku, protože každý výstup byl ukončen bajtem 0.
7. Upravte velikost bloku ve výstupu pomocí –block-size
Když už mluvíme o velikosti bloku, někdy je potřeba mít výstup jiným způsobem. Například:
$ du -ac 0 ./redhat/rh7 4 ./redhat 4 ./testfile.txt 0 ./linuxKernel 0 ./ubuntu/ub10 4 ./ubuntu 16 . 16 total
Výše uvedený výstup je reprezentován počtem 1024 bytových bloků. Nyní předpokládejme, že pokud požadujeme, aby výstup byl v počtu 2048 bajtů bloku, pak v tomto případě lze použít příznak ‚–block-size‘.
$ du -ahc --block-size=2048 0 ./redhat/rh7 2 ./redhat 2 ./testfile.txt 0 ./linuxKernel 0 ./ubuntu/ub10 2 ./ubuntu 8 . 8 total
Vidíme tedy, že výše uvedený výstup je ve formě počtu 2048 bytových bloků.
8. Zobrazte výstup v bajtech pomocí -b
Chcete-li získat výstup z hlediska bajtů, lze použít parametr -b.
$ du -achb 0 ./redhat/rh7 4096 ./redhat 3 ./testfile.txt 0 ./linuxKernel 0 ./ubuntu/ub10 4096 ./ubuntu 12291 . 12291 total
Vidíme tedy, že výše uvedený výstup je v bytech.
9. Vyloučit konkrétní typy souborů pomocí –exclude
Předpokládejme, že nechceme mít statistiky souborů .txt. Pro tyto typy požadavků tedy existuje příznak „–exclude“.
$ du -cbha --exclude="*.txt" 0 ./redhat/rh7 4.0K ./redhat 0 ./linuxKernel 0 ./ubuntu/ub10 4.0K ./ubuntu 12K . 12K total
Vidíme tedy, že ve výstupu výše položka textového souboru nebyla.
10. Zobrazte čas úpravy a přizpůsobte styl zobrazení
Toho lze dosáhnout pomocí příznaků –time a –time-style.
$ du -cbha --time 0 2012-05-22 21:52 ./redhat/rh7 4.0K 2012-05-22 21:52 ./redhat 3 2012-06-18 19:23 ./testfile.txt 0 2012-05-22 21:52 ./linuxKernel 0 2012-05-22 21:52 ./ubuntu/ub10 4.0K 2012-05-22 21:52 ./ubuntu 13K 2012-06-18 19:23 . 13K 2012-06-18 19:23 total
$ du -cbha --time --time-style=iso 0 2012-05-22 ./redhat/rh7 4.0K 2012-05-22 ./redhat 3 2012-06-18 ./testfile.txt 0 2012-05-22 ./linuxKernel 0 2012-05-22 ./ubuntu/ub10 4.0K 2012-05-22 ./ubuntu 13K 2012-06-18 . 13K 2012-06-18 total
Pro –time-style můžete také použít full-iso, long-iso, iso.