Как добавить тройку в файл в Bash?

75

Это команды, которые я печатаю в терминале

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

Когда я смотрю в файл output.log, я вижу только «вторую строку». Как я могу убедиться, что тройник добавляется (а не стирает файл)?

Я хотел бы видеть это в файле:

First Line
Second Line

Должен ли я подходить к этому по-другому?

Спасибо!

Bluebeep
источник

Ответы:

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

Примечание. Использование -astill создает указанный файл.

user4556274
источник
12
Для удобства поисковиков модификатор -a предназначен для добавления или добавления в конец. Без -a команда tee перезаписывает файл.
chili555
1
Тройник все еще создает файл, если он не существует, когда включена опция "-a"?
Брайсон С.
@ chili555: возможно ли добавить в начало файла, а не в конец, и не перезаписать файл? Благодарю.
Саша Черных
2
@ СашаЧерных Ничего из того, что я знаю. Это звучит как отличная тема для нового вопроса!
chili555
1
@ Саша Черных 'cat source.file destination.file | tee destination.file 'добавит source.file в начало destination.file. Единственный недостаток этого подхода состоит в том, что tee будет печатать на стандартный вывод обоих файлов.
Bruno9779