2013-02-28 8 views
25

多くのUnixユーザーアカウントのディスク使用量を評価しようとしています。 単純に、私は、次のコマンドを使用しています:「du」からのすべてのアクセス許可拒否メッセージを除外

du -cBM --max-depth=1 | sort -n 

をしかし、私は以下のような多くのエラーメッセージを見てきました。そのような「Permission denied」メッセージをすべて表示から除外するにはどうすればよいですか?

du: `./james/.gnome2': Permission denied 

私の要求は「デュ」に「見つける」交換することにより、以下のリストに非常によく似である可能性があります。

How can I exclude all "permission denied" messages from "find"?

次のスレッドが動作しません。私はbashを使っていると思います。

bashで

Excluding hidden files from du command output with --exclude, grep -v or sed

答えて

38
du -cBM --max-depth=1 2>/dev/null | sort -n 

以上(だけではない、すべての最後のスニペットのように、この特定のエラーをフィルタリング)

du -cBM --max-depth=1 2> >(grep -v 'Permission denied') | sort -n 
+0

をしようとします。ありがとうございました! –

1

2>は/ dev/NULは、エラーメッセージだけが非表示になります。

コマンドduは常にディレクトリを操作してみます。何千ものディレクトリがあると想像してください。

duがない場合は、persmissionの実行を持っている場合は、...次のディレクトリに従って

0

私は除外だけの行は、あなたが見たいと思っていないという簡潔なものを使用したい、evalを必要とします。 stdoutに標準エラー出力をリダイレクトし、すべてを除外するようにgrepをS「拒否」:

du -cBM --max-depth=1 2>&1 | grep -v 'denied' | sort -n 
0

2>/dev/null場合は動作しません、あなたが使用している、おそらくシェルをbashではありません。

使用しているシェルかどうか確認するには、あなたは私がしたい正確に何ps -p $$https://askubuntu.com/a/590903/130162を参照)

関連する問題