Bash标准输出同时显示和重定向

时间:2013-05-28 21:15:37

标签: linux bash terminal

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

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

谢谢!

2 个答案:

答案 0 :(得分:6)

tee是您要查找的命令:

ls | tee localbackup.txt

答案 1 :(得分: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