在 GNU Parallel 中抑制 stderr

在 GNU Parallel 中抑制 stderr

我正在使用 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

相关内容