如何查找所有目录和子目录(单独)的文件总和,并按大小对它们进行排序

时间:2017-04-01 13:02:45

标签: linux bash awk

你能告诉我如何找到目录和子目录中所有文件的总和吗? 我试着制作这个剧本但是没有用。

Sphere

3 个答案:

答案 0 :(得分:1)

Unix工具箱中已经有了一个工具。你不必重新发明轮子:

du -x -s * | sort -n

你的du(1)手册页(磁盘使用)有所有的花里胡哨的解释。

答案 1 :(得分:0)

awk命令位于错误的位置。它应该在while循环之后。

答案 2 :(得分:0)

问题在于哪个程序扩展了哪个变量。您希望shell在awk-command中扩展$ l,但是awk命令是单引号,因此shell不会扩展$ l。

将$ l作为变量传递给awk可以解决您的问题:

find . -xdev -type d |
while read l; do
  ls -l "$l" |
  awk -v "l=$l" ' {sum+=$5} END{print sum " " l} '
done |
sort -n