it-swarm-eu.dev

Použití --exclude s příkazem du

Pravděpodobně je to něco základního, ale nedokážu to fungovat. Snažím se pomocí DU získat celkovou velikost souborů minus určité adresáře. Musím vyloučit jeden konkrétní adresář s názvem uploads, ale ne každý adresář s názvem uploads. Například moje struktura souboru vypadá trochu takto:

/store
  /uploads
    /junk_to_ignore
    /more_junk_to_ignore
  /user_one
    /uploads
  /user_two

Mohu spustit následující příkaz:

du -ch --exclude=uploads* 

a dává mi velikost souboru minus všechny adresáře „uploads“. Při pokusu o vyloučení určitých adresářů (a všech jeho podadresářů) však selhávám. Vyzkoušel jsem varianty:

du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'

ale nedokážu to přijít na to. Jak vyloučím konkrétní adresář?

71
Will

Skoro jste to našli :)

du -ch --exclude=./relative/path/to/uploads

Poznámka ne hvězdička na konci. Hvězdička znamená, že všechny podadresáře v části „upload“ by měly být vynechány - ale nikoli soubory přímo v tomto adresáři.

92
rozcietrzewiacz

Chcete-li vyloučit více adresářů, stačí znovu předat příznak --exclude.

du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude
10
Dave Neeley

úžasné přeskočit virtuální souborové systémy tak

du -hsx --exclude=/{proc,sys,dev} /*
5
Ben Lutgens

Pokud musíte být v systému MacOS, nainstalujte následující příkaz GNU Coreutils).

brew install coreutils

Většina příkazů nainstalovaných programem Coreutils je předponou g, protože v systému MacOS jsou předinstalovány jmenovky BSD. Pak můžete udělat následující.

gdu --exclude=Microsoft /Library/Fonts/
1
Lei Zhao

Vyloučení více složek

du -ch --exclude={path/to/folder1,path/to_folder2/,...,}
0
jedi