特定のファイルシステムでの自分の合計ディスク使用量を確認したいと思います。コマンドを実行しました
du -h ~my_user_name
ただし、これにはmy_user_name
が所有するすべてのディレクトリがリストされます。このすべての情報の合計を取得したいと思います。合格するための適切なオプションは何ですか?私は試した
du -h -c ~my_user_name
しかし、それはうまくいきませんでした。
合格-s
to du
は、コマンドラインで指定された項目のみに出力を制限します。
du -sh ~
Du は、ユーザーごとではなく、フォルダーごとの合計のみを表示します。
たとえば、/home/example_user/
の合計サイズが必要で、そのexample_userのみがそのフォルダーにファイルを持っている場合、これは機能する可能性があります。他のユーザーがファイルを持っている場合、これはあなたが所有するすべてのファイルのサイズではなく、そのフォルダー内のすべてのファイルの合計サイズになります。
ユーザーごとの情報を取得するには、次のいずれかを実行します。
find /path/to/search/ -user username_whos_files_to_count -type f -printf "%s\n" | awk '{t+=$1}END{print t}'
これは、GNU特定の拡張子を見つけるために使用します。
/path/to/search/
内のすべてのファイルとディレクトリを検索します。-type f
を使用すると、ファイルのみが選択されます。それ以外の場合は、ディレクトリのサイズもカウントされます。 (空のフォルダを作成してみてください。おそらく4kのディスクスペースを使用します)。-user username_whos_files_to_count
は、1人のユーザーからの結果のみを選択します-printf "%s\n"
はサイズを印刷します。この最初の部分を実行すると、数値のリストが表示されます。それらはファイルサイズです。 (その他はすべて取り除かれ、%s印刷コマンドにより、サイズのみが印刷されます。)
次に、これらの数値をすべて追加して、要約を取得します。例では、これはawkを使用して行われます。
特定のユーザーによるすべての使用を見つけるには、適切なコマンドは次のとおりです。
find -user $USER -type f -exec du -chs {} +
特定のニーズに応じてさらに変更できます。たとえば、フォルダーごとに使用を要約したい場合が多く、次のようにするとうまくいきます。
find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +
これは、1つのレベルのディレクトリのみを検索し、ユーザーごとに制限し、親ディレクトリを除外し、各ディレクトリと概要を最後に出力します。