特定のユーザーの合計ディスク使用量


11

特定のファイルシステムでの自分自身の合計ディスク使用量を確認したいと思います。コマンドを実行しました

du -h ~my_user_name

ただし、これにはが所有するすべてのディレクトリがリストされmy_user_nameます。このすべての情報の合計を取得したいと思います。合格するための適切なオプションは何ですか?私は試した

du -h -c ~my_user_name

しかし、それはうまくいきませんでした。

回答:



9

Duはユーザーごとではなく、フォルダーごとの合計のみを表示します。

たとえば、合計サイズが/home/example_user/必要な場合や、そのexample_userのみがそのフォルダーにファイルを持っている場合は、これでうまくいくかもしれません。他のユーザーがファイルを持っている場合、これはあなたが所有しているすべてのファイルのサイズではなく、そのフォルダー内のすべてのファイルの合計サイズになります。

ユーザーごとの情報を取得するには、次のいずれかを実行します。

  1. quotaが有効になっている場合は、それらのコマンドを使用してください。
  2. findを使用して、ファイルをカウントするすべてのディレクトリを調べます。uid使用してファイルのみを選択し、連想配列をawkに保持して合計をカウントします。

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を使用して行われます。


+1良い点、ありがとう!以下の答えは実際に私が欲しかったものでした。私の場合、ユーザーとフォルダの区別はそれほど重要ではありません
Alex

いいね。du -schよく使われる簡単なコマンドです。モノが混在しているときに誰が何を所有しているかを追跡することは、1つのライナーとして行うことはできますが、はるかに困難です。一度使ったのですが、今日は再構築に苦労しました。
Hennes、2013年

完全な説明
Babin Lonston、2014年

2

特定のユーザーによるすべての使用を見つけるには、適切なコマンドは次のとおりです。

find -user $USER -type f -exec du -chs {} +

特定のニーズに応じてさらに変更することができます。たとえば、フォルダーごとに使用を要約したい場合が多く、次のようにするとうまくいきます。

find . -maxdepth 1 -user $USER -type d ! -path . -exec du -chs {} +

これは、1つのレベルのディレクトリのみを検索し、ユーザーごとに制限し、親ディレクトリを除外し、各ディレクトリと概要を最後に出力します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.