Sie können das immer noch mit mountpoint filtern (sofern auf Ihrem System verfügbar):
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Wenn mountpoint ist nicht verfügbar, aber stat ist (während stat ist immer noch nicht POSIX, es kann häufiger vorkommen), müssen Sie den stat vergleichen manuell ausgeben:
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
Ich glaube du hast recht. Sie sagen eigentlich du /dev , du /sys , du /usr , du /home daher ist die Option "-x" bedeutungslos.
Warum schleifst du nicht darüber? Z.B. find / -maxdepth 1 | egrep -v home|media listet alle Verzeichnisse außer home und media auf. Dann können Sie die Ausgabe an while weiterleiten Schleife zu du es.
find / -maxdepth 1 | egrep -v home|media | while read f; do
du -s -h -x "$f";
done