回答:
-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 find特定の拡張機能を使用していることに注意してください。
/path/to/search/
。-type f
ファイルのみを選択するようにします。それ以外の場合は、ディレクトリのサイズもカウントします。(空のフォルダを作成してみてください。おそらく4kのディスクスペースを使用します)。-user username_whos_files_to_count
1人のユーザーからの結果のみを選択します-printf "%s\n"
サイズを印刷します。この最初の部分を実行すると、数値のリストが表示されます。それらはファイルサイズです。(他のものはすべて取り除かれ、%s印刷コマンドのおかげでサイズのみが印刷されます。)
次に、これらの数値をすべて追加して、要約を取得します。例では、これはawkを使用して行われます。
du -sch
よく使われる簡単なコマンドです。モノが混在しているときに誰が何を所有しているかを追跡することは、1つのライナーとして行うことはできますが、はるかに困難です。一度使ったのですが、今日は再構築に苦労しました。
特定のユーザーによるすべての使用を見つけるには、適切なコマンドは次のとおりです。
find -user $USER -type f -exec du -chs {} +
特定のニーズに応じてさらに変更することができます。たとえば、フォルダーごとに使用を要約したい場合が多く、次のようにするとうまくいきます。
find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +
これは、1つのレベルのディレクトリのみを検索し、ユーザーごとに制限し、親ディレクトリを除外し、各ディレクトリと概要を最後に出力します。