すべてのユーザーと複数のドライブで消費される合計スペースを一覧表示する方法

すべてのユーザーと複数のドライブで消費される合計スペースを一覧表示する方法

複数のドライブにわたって特定のファイル拡張子に対してのみ、すべてのユーザーとそれらが使用する合計スペースを一覧表示するにはどうすればよいですか?デフォルトでは、次のように出力されます。

User1 15T /datadrive01
User2 10T /datadrive01
User3 11gb /datadrive01

User1 20T /datadrive02
User2 10gb /datadrive02
User3 5gb /datadrive02

ベストアンサー1

少し時間がかかります。

for mnt in /datadrive01 /datadrive02; do
    find "$mnt" -printf '%u %k\n' 2>/dev/null \
      | awk -v "mnt=$mnt" '{sum[$1]+=$2} END {for (u in sum) print u,sum[u],mnt}' \
      | numfmt --from-unit=1000 --to=iec --field=2
    echo
done
  • findすべてのファイルと印刷-printf '%u %k\n'ユーザーとディスク使用量サイズ()
  • awk各ユーザーのすべてのサイズを合計して印刷します。
  • オプションでnumfmt寸法を人間が読める形式に変換
  • echo真ん中の空行

おすすめ記事