-s
を渡す 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}'
- 最初のコマンドは、
/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 つのレベルのディレクトリのみが検索され、ユーザーごとに制限され、親ディレクトリが除外され、各ディレクトリと最後に概要が出力されます。