【发布时间】:2018-10-15 09:28:40
【问题描述】:
我看到this answer 使用command 2>x 1>y 将stdout / stderr 重定向到不同的地方。
但是,我有兴趣操纵 stdout 部分:
我想tar -xvzf一个文件,计算输出文件,并将其存储在一个文件中,并将错误存储在另一个文件中。
第一次尝试:
tar -xvzf pkg.tgz 2>err 1>output
文件名本身保存在output中(我没有使用wc -l,但至少它给出了有意义的输出)
第二次尝试:
tar -xvzf pkg.tgz 2>err 1 | wc -l >output
tar: 1: 在存档中找不到
tar:由于先前的错误而以失败状态退出
如果出现问题(tar -xvzf 通常会解压文件并输出错误),我如何获取提取的文件数或失败指示?
第三次尝试:
tar -xvzf pkg,tgz 2>err | wc -l > output
有点作品,但我不确定...
我的问题是:我的第三次尝试合法吗?此外,是否有一个选项是重定向仅在其中包含数据时才创建文件(即,如果 stderr 没有任何内容,则不会创建任何 err 文件?)
【问题讨论】: