Linux(RHEL 6)で、特定のファイルシステムのクォータにカウントされているすべてのファイルとサイズを一覧表示するための最良の方法は何ですか?
プロジェクトディレクトリがあり、現在行っていることはすべてかなり小さいですが、クォータがほぼいっぱいになっているので、他に何があるかを確認して、少しクリーンアップできるようにします。
find
を使用して、ファイル名に表示される可能性のあるスペースやその他の面白い記号に関して安全な方法を使用する必要があります。これで問題ありません(find
バージョンとdu
バージョンがオプションを受け入れる場合):
find . -type f -user "$USER" -print0 | du -ch --files0-from=-
(-c
オプションは、最後にニースの合計を設定することです)。ただし、これはディレクトリのサイズをカウントしません。
ディレクトリツリーにアクセスできないディレクトリがある場合、画面にジャンク(許可が拒否された)が表示される可能性があるため、stderr
を/dev/null
に次のようにリダイレクトすることをお勧めします。
find . -type f -user "$USER" -print0 2>/dev/null | du -ch --files0-from=-
私はおそらくユーザー名に基づいて検索コマンドを実行するでしょう、私はそれが彼らがクォータを計算するものであると思います。
何かのようなもの:
#!/bin/bash
for i in `find . -type f -user $(whoami)`; do
du -h ${i}
done
これにより、$(whoami)が所有するすべてのファイルが、人間が読める形式のファイルサイズで一覧表示されます。
ただし、そのリストは私のシステムでは非常に長いので、そのファイルにstdoutを追加するか(たとえば、> output.txt
)、find
コマンドに-maxdepth #
を追加して制限することをお勧めします。それを管理可能なレベルのディレクトリに。