如何列出所有用户及其在多个驱动器中消耗的总空间

如何列出所有用户及其在多个驱动器中消耗的总空间

如何列出所有用户及其在多个驱动器中的总消耗空间,并且仅针对特定文件扩展名?基本上类似于下面的输出:

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只是为了中间的空白行

相关内容