使用完整路径计算生成的文件夹列表中所有文件的总大小
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)
这是一个常见的反模式。它适用于简单的情况,失败更多,因为 $(...)
的结果经历了分词和文件名扩展。
检查您的脚本
如果你想“运行一个带有文件参数的命令”使用xargs
或者写一个循环。阅读 https://mywiki.wooledge.org/BashFAQ/001 。 xargs
本身也会处理太多参数。我还会将 -s
添加到 du
。尝试:
xargs -d'\n' du -sch < file_list.txt | tail -1 | cut -f 1
测试 repl bash
我有一个包含多个目录和完整路径的列表:
/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)
这是一个常见的反模式。它适用于简单的情况,失败更多,因为 $(...)
的结果经历了分词和文件名扩展。
如果你想“运行一个带有文件参数的命令”使用xargs
或者写一个循环。阅读 https://mywiki.wooledge.org/BashFAQ/001 。 xargs
本身也会处理太多参数。我还会将 -s
添加到 du
。尝试:
xargs -d'\n' du -sch < file_list.txt | tail -1 | cut -f 1
测试 repl bash