Як додати трійника до файлу в Bash?


73

Це команди, які я набираю в терміналі

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

Коли я дивлюсь у файл output.log, я бачу лише "Другий рядок". Як я можу переконатися, що трійник додається (а не стирає файл)?

Я хотів би бачити це у файлі:

First Line
Second Line

Чи варто підходити до цього іншим способом?

Дякую!

Відповіді:


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 призначений для 'додати' або додати до кінця. Без -a команда tee перезаписує файл.
chili555

1
Чи трійник все ще створює файл, якщо він не існує, коли включена опція "-a"?
Брайсон С.

@ chili555: чи можна додавати до початку файлу, а не до кінця, і не перезаписати файл? Дякую.
Саша Черних

2
@ СашаЧерных Нічого, про що я знаю. Це звучить як чудова тема для нового питання!
chili555

1
@ Саша Черных 'cat source.file target.file | tee target.file 'додасть source.file на початку target.file. Єдиний підхід при такому підході полягає в тому, що трійник надрукує для складання обох файлів.
Bruno9779
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.