tee從標準輸入讀取並寫入標準輸出和文件。tee到壓縮文件
some_command |& tee log
這是可能的三通來寫入壓縮文件?
some_command |& tee -some_option log.bz2
如果三通無法做到這一點,有沒有其他的命令?
我可以輸出到一個壓縮文件重定向與
some_command |& bzip2 > log.bz2
但與此命令後,輸出到標準輸出丟失。
tee從標準輸入讀取並寫入標準輸出和文件。tee到壓縮文件
some_command |& tee log
這是可能的三通來寫入壓縮文件?
some_command |& tee -some_option log.bz2
如果三通無法做到這一點,有沒有其他的命令?
我可以輸出到一個壓縮文件重定向與
some_command |& bzip2 > log.bz2
但與此命令後,輸出到標準輸出丟失。
如果你有你的標準錯誤輸出OK,你可以把它重定向:
some_command | tee /dev/stderr | bzip2 > log.bz2
這T恤的輸出到標準輸出和標準錯誤(| tee /dev/stderr
)。然後,它管的標準輸出到bzip2的(| bzip2 > log.bz2
)
如果你的shell是bash
(4.x版),你有'process substitution',你可以使用:
some_command 2>&1 | tee >(bzip2 -c > log.bz2)
此重定向標準錯誤和標準輸出到tee
(像|&
呢,但我更喜歡經典的符號)。 tee
的輸出副本被髮送到進程而不是文件;該過程是bzip2 -c > log.bz2
,它將標準輸入以壓縮格式寫入其標準輸出。當然,輸出的另一個(未壓縮)副本直接轉換爲標準輸出。
最後的'2>&1'表示由'bzip2'生成的任何錯誤消息都被寫入到它的輸出文件'log.bz2'中。簡單地放棄重定向,並提及它,你就會生意。 – 2013-03-28 04:19:57
嗯,很好的電話。 – craig65535 2013-03-28 04:37:26