GNU/Linux >> Znalost Linux >  >> Linux

sečíst všechna čísla z du

V AWK:

{ sum += $1 }
END { print sum }

Takže

du -b /tmp/* | awk '{ sum += $1 } END { print sum }'

Všimněte si, že výsledek nebude správný, pokud jsou adresáře pod /tmp mají samy podadresáře, protože du vytváří průběžné součty adresářů a jejich potomků.

du -s vypočítá součet za vás správně (na všech podadresářích a souborech v /tmp , včetně skrytých):

du -sb /tmp

a du -c vypočítá součet uvedených adresářů a souborů také správně:

du -cb /tmp/*

Můžete také vytvořit celkový součet vybraných souborů pomocí du -c . Toto funguje, i když je argument du není adresář, což není případ du -s :

$ du -sb file1 file2
17  file1
18  file2

$ du -cb file1 file2
17  file1
18  file2
35  total

BTW, pro interaktivní použití doporučuji přidat -h možnost namísto -b nebo jakýkoli jiný multiplikátor velikosti bloku. Toto vytiskne velikost ve formátu jednotek čitelných pro člověka.

$ du -ch file1 file2
4.0K    file1
4.0K    file2
8.0K    total

Je to jednoduché, můžete použít:

 du -b /tmp/* | awk 'BEGIN{i=0} {i=i+$1} END{print i}'

Pokud nepoužíváte zástupný znak, pokud používáte název adresáře jako /tmp , pak se musíte vyhnout poslednímu záznamu, protože výstup je du -b /tmp je jako:

size1 file1
size2 file2
size_total .

Takže teď byste se měli vyhnout tomuto poslednímu záznamu, takže použijte:

du -b /tmp | awk 'BEGIN{i=0} {if( $2 != "." ){i=i+$1}} END{print i}'

Můžete však také použít -s možnost, vypočítá souhrn za vás, pak nemusíte přidávat hodnoty, stačí vytisknout poslední, tj.:

du -s directory

Linux
  1. Smazat všechny e-maily uživatelů root z prostředí Linuxu

  2. Vyloučit všechny soubory podtržení teček z Rsync?

  3. Jak mohu rychle sečíst všechna čísla v souboru?

  1. Jak odstranit všechny adresáře .svn z adresářů mých aplikací

  2. Použijte wc na všechny podadresáře k počítání součtu řádků

  3. Odstraňte všechny speciální znaky a velká a malá písmena z řetězce v bash

  1. Pomocí awk vytisknete všechny sloupce od n-tého po poslední

  2. Jak přesunout všechny soubory z aktuálního adresáře do horního adresáře?

  3. Zypper:Jak zobrazím všechny balíčky z určitého úložiště?