0

我有一个包含一些文件路径的文件,例如:

./file1
./dir/file2
./dir3/dir4/fil3
etc

我怎样才能找到所有这些的总文件大小?我知道“du”用于获取单个文件的文件大小,但不知道如何使用文件。

谢谢

4

2 回答 2

2

您可以使用 du 给出多个文件的总大小

 cat file | tr "\n" "\0" | du -ch --files0-from=- | tail -n1

使用 awk 获取文件大小

 cat file | awk  '{system("ls -l " $0)}' | awk '{ TOTAL += $5} END { print TOTAL}'
于 2013-03-18T17:31:15.197 回答
0

GNU coreutils du 唯一建议

编辑:命名选项--files0-from是 GNU 扩展,所以这个建议的解决方案不适用于任何非 GNU coreutils du 版本。由于您不想要它,因此awk您应该尝试使用 Vivek Goel 发布的版本。

你已经回答了你自己的问题。使用du是关键。您正在寻找的“缺失”选项可能是在手册页中找到的。(曼杜)

--files0-from=F
总结文件 F 中指定的以 NUL 结尾的文件名的磁盘使用情况;如果 F 是 - 则从标准输入中读取名称

用法是这样的:

tr "\n" "\0" <file-list | du --files0-from=- 
于 2013-03-18T17:34:40.030 回答