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

125

Как я могу сделать что-то вроде command > fileдобавления к файлу вместо перезаписи?

Том Брито
источник
1
справочном руководстве по bash есть много-много - возможно, даже слишком много! - вкусностей, включая всевозможные перенаправления. Отрегулируйте по мере необходимости для оболочки.)
4
Вы также можете использовать tee, если хотите перенаправить на STDOUT и добавить результаты в файл. Например: эхо "привет" | tee -a somefile.txt, где флаг -a означает добавление.
Хенрик

Ответы:

212

Используйте >>для добавления:

command >> file
Майк Льюис
источник
103

Да.

command >> fileперенаправлять только стандартный вывод из command.

command >> file 2>&1перенаправить stdout и stderr в файл (работает в bash, zsh)

И если вам нужно использовать sudo, помните, что просто

sudo command >> /file/requiring/sudo/privilegesне работает, поскольку повышение привилегий применяется к commandчасти перенаправления оболочки, но не к ней. Однако простое использование teeрешает проблему:

command | sudo tee -a /file/requiring/sudo/privileges

EdvardM
источник
6
Я использую это для всех программ захвата вывода .sh 2> & 1 | тройник -a screen.log. "-a" означает добавление.
Xdg
-3

вы можете добавить файл со знаком >>. Он вставляет содержимое в последний файл, который мы используем. Например, если файл пусть его имя - myfile, содержит xyz, то cat >> myfile abc ctrl d

после вышеуказанного процесса myfile будет содержать xyzabc.

user3680358
источник
4
>>Оператор был упомянут три года назад уже, и ОП знает , что добавление средств.
Дэн Даскалеску