tee从标准输入读取并写入标准输出和文件。
some_command |& tee log
tee命令是否可以将输出写入压缩文件?
some_command |& tee -some_option log.bz2
如果tee命令无法实现此功能,是否有其他命令可用?
我可以使用以下命令将输出重定向到压缩文件中:
some_command |& bzip2 > log.bz2
但是使用这个命令后,标准输出的内容会消失。
tee从标准输入读取并写入标准输出和文件。
some_command |& tee log
tee命令是否可以将输出写入压缩文件?
some_command |& tee -some_option log.bz2
some_command |& bzip2 > log.bz2
如果你的shell是bash
(版本4.x),你可以使用'进程替换',示例如下:
some_command 2>&1 | tee >(bzip2 -c > log.bz2)
这样可以将标准错误和标准输出重定向到tee
(像|&
一样,但我更喜欢传统的符号)。tee
的输出副本被发送到一个进程而不是文件;该进程是bzip2 -c > log.bz2
,它在压缩格式下将其标准输入写入其标准输出。当然,另一个(未压缩的)输出副本直接输出到标准输出。
some_command | tee /dev/stderr | bzip2 > log.bz2
这个命令同时将输出定向到标准输出和标准错误流(| tee /dev/stderr
)。然后,它将标准输出流传递给bzip2 (| bzip2 > log.bz2
)