[英]How to find sum of files for all directories and sub directories (separately) and them sort them by size
您能否建议我如何找到目录和子目录中所有文件的总和? 我尝试制作此脚本,但无法正常工作。
find . -xdev -type d | while read l;do ls -l "$l" |
awk '{sum+=$5}END{print sum/1024/1024 "" $l }';done | sort -k 1
Unix工具箱中已经有一个用于此目的的工具。 您不必重新发明轮子:
du -x -s * | sort -n
您的du(1)手册页(用于磁盘使用 )说明了所有问题。
awk命令在错误的位置。 它应该在while循环之后。
问题是哪个程序扩展了哪个变量。 您希望外壳程序在awk命令中扩展$ l,但是awk命令用单引号引起来,因此外壳程序不会扩展$ 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.