Vous pouvez toujours filtrer cela en utilisant mountpoint
(si disponible sur votre système) :
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Si mountpoint
n'est pas disponible mais stat
est (tandis que stat
n'est toujours pas POSIX, c'est peut-être plus courant), vous devrez comparer le stat
sortie manuellement :
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
Je suppose que tu as raison. Vous dites en fait du /dev
, du /sys
, du /usr
, du /home
donc l'option "-x" n'a pas de sens.
Pourquoi ne pas boucler dessus ? Par exemple. find / -maxdepth 1 | egrep -v home|media
listera tous les répertoires sauf home et media. Ensuite, vous pouvez diriger la sortie vers un while
boucle vers du
il.
find / -maxdepth 1 | egrep -v home|media | while read f; do
du -s -h -x "$f";
done