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