Bash标准输出同时显示和redirect

terminal中,有时我想显示标准输出,并将其另存为备份。 但如果我使用redirect( > &>等),它不会在terminal上显示输出。

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

谢谢!

tee是你正在寻找的命令:

 ls | tee localbackup.txt 

除了使用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