Todavía puedes filtrar eso usando mountpoint
(si está disponible en su sistema):
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Si mountpoint
no está disponible pero stat
es (mientras stat
todavía no es POSIX, puede ser más común), tendrá que comparar el stat
salida manual:
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
Supongo que estas en lo correcto. En realidad estás diciendo du /dev
, du /sys
, du /usr
, du /home
por lo que la opción "-x" no tiene sentido.
¿Por qué no lo recorres? P.ej. find / -maxdepth 1 | egrep -v home|media
listará todos los directorios excepto home y media. Luego puede canalizar la salida a un while
bucle a du
eso.
find / -maxdepth 1 | egrep -v home|media | while read f; do
du -s -h -x "$f";
done