如何将tee附加到Bash中的文件?


73

这些是我在终端中键入的命令

echo -e "First Line" | tee ~/output.log
echo -e "Second Line" | tee ~/output.log

当我查看output.log文件时,我仅看到“第二行”。我如何确保tee附加(而不是擦除文件)?

我希望能够在文件中看到此内容:

First Line
Second Line

我应该以其他方式处理吗?

谢谢!

Answers:


118
echo -e "First Line" | tee ~/output.log
echo -e "Second Line" | tee -a ~/output.log
                            ^^

三通

   Copy standard input to each FILE, and also to standard output.

   -a, --append
          append to the given FILEs, do not overwrite

注意:使用-a仍会创建提到的文件。


12
为了搜索者的利益,-a修饰符用于'append'或添加到末尾。如果不使用-a,则tee命令将覆盖该文件。
chili555

1
如果包含“ -a”选项,则tee仍会创建文件吗?
Bryson S.

@ chili555:是否可以追加到文件的开头而不是结尾,并且不覆盖文件?谢谢。
СашаЧерных

2
@СашаЧерных我所知道的没有。这听起来像是一个新问题的好话题!
chili555

1
@СашаЧерных'cat source.file destination.file | tee destination.file”将会在source.file的开头附加source.file。使用此方法的唯一问题是,tee将打印到两个文件的标准输出。
Bruno9779 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.