首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bzip命令不适用于"tee -a“

bzip命令不适用于"tee -a“
EN

Stack Overflow用户
提问于 2015-10-23 16:23:22
回答 3查看 387关注 0票数 0

我想使用tee命令将bzip命令的stdop重定向到日志文件,但它不起作用,并且在tee命令中给出'-a‘错误。请查看下面的错误,

代码语言:javascript
复制
> bzip2 file -c 1> tee -a logfile

bzip2: Bad flag `-a'
bzip2, a block-sorting file compressor.  Version 1.0.5, 10-Dec-2007.

   usage: bzip2 [flags and input files in any order]

   -h --help           print this message
   -d --decompress     force decompression
   -z --compress       force compression
   -k --keep           keep (don't delete) input files
   -f --force          overwrite existing output files
   -t --test           test compressed file integrity
   -c --stdout         output to standard out
   -q --quiet          suppress noncritical error messages
   -v --verbose        be verbose (a 2nd -v gives more)
   -L --license        display software version & license
   -V --version        display software version & license
   -s --small          use less memory (at most 2500k)
   -1 .. -9            set block size to 100k .. 900k
   --fast              alias for -1
   --best              alias for -9

   If invoked as `bzip2', default action is to compress.
              as `bunzip2',  default action is to decompress.
              as `bzcat', default action is to decompress to stdout.

   If no file names are given, bzip2 compresses or decompresses
   from standard input to standard output.  You can combine
   short flags, so `-v -4' means the same as -v4 or -4v, &c.

问题出在哪里?为什么bzip正在考虑使用'-a‘标志的tee命令。

EN

回答 3

Stack Overflow用户

发布于 2015-10-23 16:26:16

尝试:

代码语言:javascript
复制
bzip2 -c file | tee -a logfile

| (管道)将左命令的标准输出重定向到右命令的标准输入。

-c is是bzip2的一个选项,上面写着Compress or decompress to standard output.。请参阅man bzip2

票数 0
EN

Stack Overflow用户

发布于 2015-10-23 16:43:27

您的问题是,1>不会将bzip2命令的输出通过管道传递给tee命令,而是将输出重定向到一个名为tee的文件。此外,您可能不想使用-c。您应该改用管道|,如下所示:

代码语言:javascript
复制
bzip2 file | tee -a logfile

此外,bzip2之所以抱怨,是因为您上面提到的命令将被完全解释为以下命令:

代码语言:javascript
复制
bzip2 file -a logfile 1> tee

因此,tee之后的所有参数实际上都被添加到bzip2命令中。

票数 0
EN

Stack Overflow用户

发布于 2015-10-23 19:58:38

正如其他人所指出的,您需要的是管道,而不是输出重定向:

代码语言:javascript
复制
bzip2 file | tee -a logfile

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

代码语言:javascript
复制
bzip2 file 2>&1 | tee -a logfile

(2>&1将标准错误复制到标准输出,然后可以对其进行管道传输。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33297845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档