GNU/Linux >> Linux の 問題 >  >> Linux

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

-s を渡す duまで コマンドラインで指定された項目のみに出力を制限します。

du -sh ~

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

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

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

<オール>
  • クォータが有効になっている場合は、それらのコマンドを使用してください。
  • find を使用して、ファイルをカウントするすべてのディレクトリを調べます。uid を使用してファイルのみを選択し、連想配列を awk に保持して合計をカウントします。
  • 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 つのレベルのディレクトリのみが検索され、ユーザーごとに制限され、親ディレクトリが除外され、各ディレクトリと最後に概要が出力されます。


    Linux
    1. 10 Linux DU コマンドの例 (ファイルとフォルダーのディスク使用サイズ)

    2. スペース付きで返されたファイルのディスク使用量を確認する

    3. 特定のユーザーに対して Linux で特定のコマンドをブロックする

    1. サイズと拡張子でファイルを検索する方法は?

    2. ヘッドレス Linux 用のディスク使用率ツリーマップ ソフトウェア

    3. ファイル リストを含むファイルから合計ファイル サイズを取得する

    1. 一連のSystemdサービスファイルのユーザーを変更するにはどうすればよいですか?

    2. Linuxのディレクトリ/フォルダーごとに合計ファイルのディスク使用サイズを一覧表示する

    3. Linux で合計 RAM サイズとメモリ使用量を確認する方法