查看文件夹内文件夹的大小和所有者

查看文件夹内文件夹的大小和所有者

有人知道如何查看目录中的所有文件夹的大小、文件夹/文件、所有者吗?

我知道的唯一命令是du -hs * But 它也显示所有子文件夹并且不显示所有者。

例如,我想获取“/my/path/”下的信息大小、文件夹/文件、文件夹/文件的所有者。

知道可以为我提供此信息的命令吗?

胡特曼弟兄

答案1

你可以尝试一下find命令:

find /my/path -maxdepth 1 -type d -printf "%u %g   " -exec du -h --max-depth=0 {} \;

应该将所有目录(filter -type d)定位在起点/my/path(option -maxdepth 1)下面一层。然后它会

  • 使用-printf选项打印所有者和组,然后
  • 使用该机制,du --max-depth=0对找到的每个目录 ( )调用{},以直接在前面选项的输出后面打印名称和总大小。-printf-exec

答案2

我这里有一个简单的片段给你

#!/usr/bin/env bash

unset fname owner size i

for f in "$@"
  do
    fname[i]="$f"
    owner[i]=$(stat -c %U "$f")
    size[i++]=$(stat -c %s "$f")
  done 

for i in "${!fname[@]}"
  do
    printf "User %s owns %s and the size is %d Kbytes\n" "${owner[i]}" "${fname[i]}" $((${size[i]} / 1024))
  done

使脚本可执行或像这样运行它 bash script_name [path]

chmod u+x script_name

并运行它

./script_name /my/path/*

相关内容