Yor*_*war 6 unix compression shell tee
tee从标准输入读取并写入标准输出和文件.
some_command |& tee log
Run Code Online (Sandbox Code Playgroud)
是否可以将tee写入压缩文件?
some_command |& tee -some_option log.bz2
Run Code Online (Sandbox Code Playgroud)
如果发球台不能那样做,还有其他命令吗?
我可以将输出重定向到压缩文件
some_command |& bzip2 > log.bz2
Run Code Online (Sandbox Code Playgroud)
但是使用此命令,缺少输出到标准输出.
如果你的shell是bash
(版本4.x),你有'进程替换',你可以使用:
some_command 2>&1 | tee >(bzip2 -c > log.bz2)
Run Code Online (Sandbox Code Playgroud)
这会将标准错误和标准输出重定向到tee
(比如|&
,但我更喜欢经典表示法).将tee
输出的副本发送到进程而不是文件; 该过程bzip2 -c > log.bz2
将其压缩格式的标准输入写入其标准输出.当然,输出的另一个(未压缩的)副本直接转换为标准输出.
如果您在stderr上输出正常,则可以重定向它:
some_command | tee /dev/stderr | bzip2 > log.bz2
Run Code Online (Sandbox Code Playgroud)
这将输出转换为stdout和stderr(| tee /dev/stderr
).然后它将stdout传递给bzip2(| bzip2 > log.bz2
)
归档时间: |
|
查看次数: |
2141 次 |
最近记录: |