Linux:查找文件中文件路径的总文件大小

时间:2013-03-18 17:26:48

标签: linux

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

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

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

谢谢

2 个答案:

答案 0 :(得分: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}'

答案 1 :(得分:0)

GNU coreutils du only suggestion

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

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

  

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

用法如下:

tr "\n" "\0" <file-list | du --files0-from=-