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