2016-05-17 6 views
2

質問の文言が間違っている場合は、私にお知らせください。それは私が答えを見つけることができない理由を説明するかもしれない。マウントされたファイルシステムを経由しないLinux duコマンド

私は次のようなコマンドを使用して、私のメインのディスク上の使用法を見つけたい:

du -sh /* 

問題は、私は、ルートレベルでのマウントポイントの数を持っているということです、と私はこれらをスキップするduをしたいと思います。

私は-xオプションがこれを行うと考えられていたと思っていますが、私はそのことを誤解しているか、間違った方法で使っています。

duをルートディスクにのみ追加マウントを通過させずに適用するにはどうすればよいですか?

おかげ

+0

言い換えれば、 '/ bin '、'/etc'、 '/'の下にある他のフォルダの概要を探していますが、 '/ run'、'/proc/'、'/sys'、等々? – jamieguinan

+0

私は '/ data'と'/backup'にマウントされたドライブも追加していますが、それは基本的に正しいです。 – Manngo

+0

あなたは 'du'を正しく使っていると思いますが、問題は'/* 'が'/'の下のすべてのマウントポイントを含むように展開されていて、' du'が各マウントポイントを反復して '-x'これを解決する唯一の方法は、創造的なスクリプトを使用することです。 – jamieguinan

答えて

2

これはハックですが、シェルから、あなたがやりたいように見える、必要に応じて

for d in /*; do egrep " ${d} " /proc/mounts > /dev/null || du -sh ${d}; done 

duの前でsudoを追加します。

+0

申し訳ありませんが、これを受け入れるにはとても長い時間がかかりました。上のあなたのコメントは、私が思うに、 '-x'が動作していないことを説明しています。答えは解決策です。私自身の使い方では、次のように変更しました。もしそうなら!マウントポイント-q "$ i";次にdu -sh $ i; fi;完了しました。ありがとう – Manngo

5

du -xは、それが発生したすべてのマウントポイントを通過しません。しかし、もしそれがに開始をマウントポイントで言われれば、それは要求通りにするでしょう。

関連する問題