我正在使用 GNU Parallel 同时运行数千次命令。
为了获取我正在使用的执行日志--files
。--results
为了在运行时获得漂亮的进度条,我使用--eta
和--progress
。
现在,我的问题是,虽然 STDERR 被重定向到文件,但它仍然被打印到终端,这会损坏我的进度条。
如何禁止将 STDERR 打印到终端?我仍然希望在日志文件中保留此信息,因此我不能只将命令包装到 中2>/dev/null
。
到目前为止我的命令行如下所示:
cat input.txt | parallel -P 10 --progress --eta --files --results output_dir/ "./script.sh some-arg {}"
答案1
如果您想要一个不错的酒吧,我可以建议您--bar
使用 吗--eta
?您需要 20131122 或更高版本。
这似乎有效,因为 STDERR 文件不会被打印,所以除了以下内容之外,你在 STDERR 上什么也得不到--bar
:
cat input.txt | parallel -P 10 --bar --files --results output_dir/ "./script.sh some-arg {}" >/dev/null
答案2
这对我有用:
parallel --bar --jobs 10 '(ffmpegthumbnailer -i "{}" -o "/tmp/${DIR}/{}.jpg" -f 2>/dev/null)' ::: *.mp4