我有一个包含一些文件路径的文件,如:
./file1
./dir/file2
./dir3/dir4/fil3
etc
如何找到所有这些文件的总文件大小?我知道“du”获取单个文件的文件大小但不知道如何使用文件。
谢谢
答案 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)
编辑:命名选项--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=-