我想使用tee命令将bzip命令的stdop重定向到日志文件,但它不起作用,并且在tee命令中给出'-a‘错误。请查看下面的错误,
> 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命令。
发布于 2015-10-23 16:26:16
尝试:
bzip2 -c file | tee -a logfile| (管道)将左命令的标准输出重定向到右命令的标准输入。
-c is是bzip2的一个选项,上面写着Compress or decompress to standard output.。请参阅man bzip2
发布于 2015-10-23 16:43:27
您的问题是,1>不会将bzip2命令的输出通过管道传递给tee命令,而是将输出重定向到一个名为tee的文件。此外,您可能不想使用-c。您应该改用管道|,如下所示:
bzip2 file | tee -a logfile此外,bzip2之所以抱怨,是因为您上面提到的命令将被完全解释为以下命令:
bzip2 file -a logfile 1> tee因此,tee之后的所有参数实际上都被添加到bzip2命令中。
发布于 2015-10-23 19:58:38
正如其他人所指出的,您需要的是管道,而不是输出重定向:
bzip2 file | tee -a logfile但是,bzip2不会产生任何输出;它只是用文件的压缩版本替换给定的文件。您可能希望通过管道将标准错误发送到日志文件:
bzip2 file 2>&1 | tee -a logfile(2>&1将标准错误复制到标准输出,然后可以对其进行管道传输。)
https://stackoverflow.com/questions/33297845
复制相似问题