Как перезаписать файл с помощью echo?

10

При использовании echo "foo">> bar.txtболее одного раза он добавляется в конец файла. Как переписать bar.txtкаждый раз?

J.Olufsen
источник
2
Денис ответил правильно. Смотрите man bashи ищите (используя /) раздел «НАПРАВЛЕНИЕ». В частности, подразделы «Перенаправление вывода» и «Добавление перенаправленного вывода».
RedGrittyBrick

Ответы:

28

>для перенаправления в файл (перезаписи), а >>для добавления.

Чтобы перезаписать bar.txt, используйте это:

echo "foo" > bar.txt
Деннис
источник
1
Чаще всего >упоминается как перенаправление (стандартный вывод в файл), в то время как символ канала |упоминается как трубопровод (стандартный вывод в другой процесс). Вы рискуете сбить с толку таких людей, как я, когда вы называете >«
трубкой
@RedGrittyBrick: Я видел трубопроводы в нескольких книгах (и я говорил это годами), но перенаправление кажется гораздо более распространенным. Спасибо.
Деннис
@Dennis Piping использует канал |для соединения вывода одной программы / команды со входом другой. Относящиеся .
Даниэль Бек
@DanielBeck: я имел в виду, что видел трубопровод в файл . Пример: изучение Windows PowerShell за месяц обедов - передача в файл или на принтер
Деннис,
Обратите внимание, что согласно странице 43, в PowerShell > fooэто просто синтаксический сахар для | Out-File foo, и, следовательно, является формой трубопровода ;-)
Даниэль Бек