Bash 脚本未返回正确的文件大小

Bash Script Not Returning Correct File Size

我有一小段 bash 脚本,我想执行以下操作:

我现在的脚本是这样的:

folder="/test/f1/"
files=$(find $folder -type f -name "test_*.txt")
size=$(du -ch $files | tail -1 | cut -f 1)
echo $size

这在查找文件时效果很好。但是,当目录没有任何 test_*.txt 文件时,我希望它打印 0 MB 或 0 KB。目前,它打印几百 kb。

当 /test/f1/ 目录没有任何这些 test_*.txt 文件时,我可以验证文件(在第 2 行中计算)为空。但是,第 3 行似乎仍将大小设置为几百 kb。

为什么会这样?为什么在这种情况下不显示 0?

谢谢

您可以在没有任何文件的情况下调用 du,在这种情况下它将对当前目录进行操作(递归)。因此,如果您调用 du -ch $files 并且 $files 为空,您将得到 du -ch .

的输出

请注意,du 默认情况下对目录递归操作。