GNU/Linux >> Znalost Linux >  >> Linux

du -x stále zkoumá připojené souborové systémy při použití zástupných znaků

Stále to můžete filtrovat pomocí mountpoint (pokud je ve vašem systému k dispozici):

for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done

Pokud mountpoint není k dispozici, ale stat je (zatímco stat stále není POSIX, může být běžnější), budete muset porovnat stat výstup ručně:

rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done

Myslím, že máš pravdu. Ve skutečnosti říkáte du /dev , du /sys , du /usr , du /home takže volba "-x" nemá smysl.

Proč to nepřehlédneš? Např. find / -maxdepth 1 | egrep -v home|media zobrazí všechny adresáře kromě domovů a médií. Potom můžete výstup převést do while smyčka na du to.

find / -maxdepth 1 | egrep -v home|media | while read f; do
  du -s -h -x "$f"; 
done

Linux
  1. 10 praktických příkladů Použití zástupných znaků k porovnávání názvů souborů v Linuxu

  2. Nevýhoda při použití Chrootu ve vysoce výkonných počítačích?

  3. Proč se při použití uvozovek zobrazuje jedno zpětné lomítko?

  1. Používáte sekundární DNS, když vyhledávání selže v primárních?

  2. Formát souborů cookie při používání Wget?

  3. Získat mtime konkrétního souboru pomocí Bash?

  1. dočasné umístění souboru při použití tmpfile() v C

  2. Jak mohu provést více příkazů při použití funkce find?

  3. příkaz nebyl nalezen při použití sudo