bzip命令不能使用“tee -a”

时间:2015-10-23 08:23:22

标签: linux bash shell unix bzip2

我想使用tee命令将bzip命令的stdop重定向到logfile,但它不能正常工作并在tee命令中为'-a'提供错误。请参阅下面的错误,

<select id="select1" onchange="changeImage(this, 'image1')">
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
</select><br/>
<img id="image1" src="http://i.imgur.com/4ECkKqG.png" />

<br>
<select id="select2" onchange="changeImage(this, 'image2')">
  <option value="1">Option 1</option>
  <option value="2">Option 2</option>
</select><br/>
<img id="image2" src="http://i.imgur.com/4ECkKqG.png" />

问题是什么?为什么bzip正在考虑tee命令的'-a'标志。

3 个答案:

答案 0 :(得分:0)

尝试:

bzip2 -c file | tee -a logfile

|(管道)将左命令的stdout重定向到右命令的stdin。

-c是来自bzip2的选项Compress or decompress to standard output.。见man bzip2

答案 1 :(得分:0)

您的问题是@Configuration @Profile({"production"}) public class ConfigProduction { @Bean Bean1 bean1(){ return prod impl;}] @Bean Bean2 bean2(){ return prod impl;} } @Configuration @Profile({"staging"}) public class ConfigStaging { @Bean Bean1 bean1(){ return staging impl;}] @Bean Bean2 bean2(){ return staging impl;} } 没有将1>命令的输出传递给bzip2命令,而是将输出重定向到名为tee的文件。此外,您可能不想使用tee。您应该使用管道-c,如下所示:

|

另外,bzip2抱怨的原因是因为上面提到的命令将完全解释为:

bzip2 file | tee -a logfile

因此bzip2 file -a logfile 1> tee 之后的所有参数实际上都被添加到tee命令中。

答案 2 :(得分:0)

正如其他人所指出的,你想要一个管道,而不是输出重定向:

bzip2 file | tee -a logfile

但是,bzip2不会产生任何输出;它只是用文件的压缩版本替换给定的文件。您可能希望将标准错误传递给日志文件:

bzip2 file 2>&1 | tee -a logfile

2>&1将标准错误复制到标准输出,然后可以通过管道传输。)