Bashでファイルにteeを追加する方法は?


74

これらは、端末に入力するコマンドです

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

ファイルoutput.logを見ると、「2行目」しか表示されていません。(ファイルを消去するのではなく)teeが追加されることを確認するにはどうすればよいですか?

私はファイルでこれを見たいと思います:

First Line
Second Line

これに別の方法でアプローチする必要がありますか?

ありがとう!

回答:


119
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修飾子は「追加」または末尾に追加するためのものです。-aを指定しないと、teeコマンドはファイルを上書きします。
chili555

1
「-a」オプションが含まれている場合、Teeは存在しない場合でもファイルを作成しますか?
ブライソンS.

@ chili555:ファイルの終わりではなく、ファイルの先頭に追加でき、ファイルを上書きしませんか?ありがとう。
СашаЧерных

2
@СашаЧерных私が知っていることはありません。これは、新しい質問の素晴らしいテーマのように思えます!
chili555

1
@СашаЧерных 'cat source.file destination.file | tee destination.file 'は、source.fileをdestination.fileの先頭に追加します。このアプローチの唯一の問題は、Teeが両方のファイルを標準出力に出力することです。
-Bruno9779
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.