60

多くのUnixユーザーアカウントのディスク使用量を評価しようとしています。簡単に言うと、次のコマンドを使用しています。

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

しかし、私は以下のような多くのエラーメッセージを見てきました。このような「許可が拒否されました」というメッセージをすべて表示から除外するにはどうすればよいですか。

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

私のリクエストは、「find」を「du」に置き換えることで、次のリストと非常によく似ている可能性があります。

すべての「許可が拒否されました」メッセージを「検索」から除外するにはどうすればよいですか?

次のスレッドは機能しません。私はbashを使用していると思います。

--exclude、grep -v、またはsedを使用してduコマンド出力から隠しファイルを除外する

4

6 に答える 6

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

またはbashの方が良い(最後のスニペットのようにすべてではなく、この特定のエラーを除外するだけです)

du -cBM --max-depth=1 2> >(grep -v 'Permission denied') | sort -n 
于 2013-02-28T17:38:53.003 に答える
7

2> / dev/nulはエラーメッセージのみを非表示にします。

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

duにはevalが必要です。許可がない場合は、次のdirを実行してください...

于 2013-03-25T18:53:37.737 に答える
5

見たくない行だけを除外した簡潔なものを使用します。stderrをstdoutにリダイレクトし、grepをリダイレクトしてすべての「拒否」を除外します。

du -cBM --max-depth=1 2>&1 | grep -v 'denied' | sort -n 
于 2017-09-24T23:31:29.523 に答える
2

動作しない場合2>/dev/nullは、使用しているシェルが動作していない可能性がありbashます。

使用しているシェルを確認するには、試してみてくださいps -p $$https://askubuntu.com/a/590903/130162を参照) 。

于 2017-11-02T15:40:21.827 に答える
2

duコマンドから来るすべてのエラーを取り除くために私はこれを使用しました:

du -sh 2>&1 | grep -v  '^du:'
于 2021-08-12T13:03:26.290 に答える
1

-のように、一時ファイルにパイプすることができます

du ... > temp_file

エラーは端末に出力され、ディスク使用量情報のみがtemp_fileに出力されます。

于 2020-05-27T23:16:43.980 に答える