多くのUnixユーザーアカウントのディスク使用量を評価しようとしています。単純に、次のコマンドを使用しています。
du -cBM --max-depth=1 | sort -n
しかし、私は以下のような多くのエラーメッセージを見てきました。このような「許可が拒否されました」メッセージをすべて表示から除外するにはどうすればよいですか?
du: `./james/.gnome2': Permission denied
「find」を「du」に置き換えることで、私のリクエストは次のリストに非常に似ている可能性があります。
すべての「許可」拒否メッセージを「検索」から除外するにはどうすればよいですか?
次のスレッドは機能しません。私はbashを使用していると思います。
du -cBM --max-depth=1 2>/dev/null | sort -n
またはbashの方が良い(最後のスニペットのようにすべてではなく、この特定のエラーを除外するだけです)
du -cBM --max-depth=1 2> >(grep -v 'Permission denied') | sort -n
2>/dev/nulはエラーメッセージのみを非表示にします。
コマンドduは、常にディレクトリ上で実行を試みます。あなたが何千ものダースを持っていると想像してください?
duにevalが必要です。権限がない場合は実行し、次のディレクトリに進みます...
2>/dev/null
は機能しません。おそらく、使用しているシェルはbash
ではありません。
使用しているシェルを確認するには、ps -p $$
( https://askubuntu.com/a/590903/130162 を参照)
表示したくない行のみを除外する簡潔なものを使用します。 stderrをstdoutにリダイレクトし、grepですべての「拒否」を除外します。
du -cBM --max-depth=1 2>&1 | grep -v 'denied' | sort -n