使用完整路径计算生成的文件夹列表中所有文件的总大小

Calculate the total size of all files from a generated folders list with full PATH

我有一个包含多个目录和完整路径的列表:

/mnt/directory_1/sub_directory_1/

/mnt/directory_2/

/mnt/directory_3/sub_directory_3/other_directories_3/

我需要计算这个列表的总大小。

来自Get total size of a list of files in UNIX

du -ch $file_list | tail -1 | cut -f 1

这是我能找到的最接近的答案,但给了我以下错误信息:

bash: /bin/du: Argument list too long

不要使用反引号`。请改用 $(..)

不要使用:

command $(cat something)

这是一个常见的模式。它适用于简单的情况,失败更多,因为 $(...) 的结果经历了分词和文件名扩展。

使用 http://shellcheck.net

检查您的脚本

如果你想“运行一个带有文件参数的命令”使用xargs或者写一个循环。阅读 https://mywiki.wooledge.org/BashFAQ/001xargs 本身也会处理太多参数。我还会将 -s 添加到 du。尝试:

xargs -d'\n' du -sch < file_list.txt | tail -1 | cut -f 1

测试 repl bash