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


75

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

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

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

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

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

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.