我有一个printf
命令会写一个文件,但不会打印到stdout。我希望两者都能让用户看到发生的事情,同时将记录写入日志文件。
printf "%s\n" "This is some text" "That will be written to a file" "There will be several lines" | tee -a bin/logfile.log > bin/newfile.conf
该命令附加到日志文件并写入新文件,但不向屏幕写入输出:(
OS:Centos 7
答案 0 :(得分:4)
这是因为除了您使用> bin/newfile.conf
所做的事情之外,您还会使用tee
重定向屏幕输出。只需删除>
及其后的所有内容即可。如果除了屏幕之外还要一次输出这两个文件,可以使用tee
两次,例如:
printf ... | tee -a bin/logfile.log | tee bin/newfile.conf
它附加到 logfile.log 并覆盖 newfile.conf ,并写入屏幕。根据需要使用或省略-a
选项。
作为John1024 points out,您也可以使用tee
一次,因为它接受多个文件名,但在这种情况下-a
applies to all filenames,但它对您来说很有用希望所有文件的追加与覆盖行为相同。