2013-05-28 35 views
2

在终端中,有时我想显示标准输出并将其另存为备份。但如果我使用重定向(>&>等),它不会在终端中显示输出。Bash标准输出同时显示和重定向

我想我可以做例如ls > localbackup.txt | cat localbackup.txt。但它感觉不对。有没有什么捷径可以实现这个目标?

谢谢!

回答

6

tee是你正在寻找的命令:

ls | tee localbackup.txt 
+0

谢谢!就是这个! – Yoland

+0

@YolandYan接受正确答案也是一种感谢某人的帮助的方式。 – msw

2

除了使用tee复制的输出(和它的值得一提的tee能够追加到文件,而不是覆盖它,通过使用tee -a,这样就可以按顺序运行几个命令和保留所有的输出),则也可以使用tail -f“追随”从并行处理的输出文件(例如一个单独的终端):

command1 >localbackup.txt # create output file 
command2 >>localbackup.txt # append to output 

并从一个单独的终端,在同一时间:

tail -f localbackup.txt # this will keep outputting as text is appended to the file 
+0

+1 for'tail -f'! – lenz