所有文件大小的总和

Arn*_*nez 3 ls bash awk shell-script files

我是 bash 新手,我需要编写一个小脚本来汇总所有文件大小(不包括子目录)。我的第一个想法是保留这些列ls -l。我无法使用 grep、du 或我在这里看到的其他高级命令。

$9 对应于显示名称的第 9 列。

$5 是文件的大小。

ls -l | awk '{if(-f $9) { total +=$5 } }; END { print total }
Run Code Online (Sandbox Code Playgroud)

Cyr*_*rus 7

使用 GNU find 和 awk:

\n\n
find . -maxdepth 1 -type f -printf "%s\\n" | awk \'{sum+=$1} END{print sum+0}\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出是以字节为单位的文件大小。\xc2\xa0\n最后的语句不仅仅是print\xc2\xa0sum+0\ print\xc2\xa0sumn到\xc2\xa0处理没有\xc2\xa0文件\n的情况(即\xc2\xa0正确打印\xc2\xa00在\xc2\xa0这种情况下)。\xc2\xa0\n这是执行 的替代方法BEGIN\xc2\xa0{sum=0}

\n