mountpoint
を使用してフィルタリングすることもできます (システムで利用可能な場合):
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
mountpoint
の場合 は利用できませんが stat
は (while stat
はまだ POSIX ではなく、より一般的かもしれません)、stat
を比較する必要があります。 手動で出力:
rootdevice="$(stat -c %D /)"
for a in /*; do [ "$rootdevice" = "$(stat -c %D -- "$a")" ] && du -s -h -x "$a"; done
私はあなたが正しいと思います。あなたは実際に du /dev
と言っています 、 du /sys
、 du /usr
、 du /home
したがって、「-x」オプションは無意味です。
ループしてみませんか?例えば。 find / -maxdepth 1 | egrep -v home|media
ホームとメディアを除くすべてのディレクトリを一覧表示します。次に、出力を while
にパイプできます du
にループ
find / -maxdepth 1 | egrep -v home|media | while read f; do
du -s -h -x "$f";
done