Puoi ancora filtrarlo usando mountpoint
(se disponibile sul tuo sistema):
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Se mountpoint
non è disponibile ma stat
è (mentre stat
non è ancora POSIX, potrebbe essere più comune), dovrai confrontare il stat
output manualmente:
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
Credo tu abbia ragione. In realtà stai dicendo du /dev
, du /sys
, du /usr
, du /home
quindi l'opzione "-x" non ha senso.
Perché non ci giri sopra? Per esempio. find / -maxdepth 1 | egrep -v home|media
elencherà tutte le directory tranne home e media. Quindi puoi reindirizzare l'output a un while
passa a du
esso.
find / -maxdepth 1 | egrep -v home|media | while read f; do
du -s -h -x "$f";
done