Como sobrescrever um arquivo usando o eco?

10

Ao usar echo "foo">> bar.txtmais de uma vez, ele anexa ao final de um arquivo. Como substituir bar.txtcada vez?

J.Olufsen
fonte
2
A resposta de Dennis está correta. Veja man bashe pesquise (usando /) a seção "REDIRECÇÃO". Especificamente as subseções "Redirecionando Saída" e "Anexando Saída Redirecionada".
RedGrittyBrick

Respostas:

28

>é para redirecionar para um arquivo (substituindo-o), enquanto >>é para anexar.

Para substituir bar.txt, use o seguinte:

echo "foo" > bar.txt
Dennis
fonte
11
Mais comumente, >é chamado de redirecionamento (saída padrão para um arquivo), enquanto o símbolo do tubo |é chamado de tubulação (saída padrão para outro processo). Você corre o risco de confundir as pessoas como eu quando se referem a >como 'tubulação'
RedGrittyBrick
@RedGrittyBrick: Eu vi tubulação em poucos livros (e eu venho dizendo isso há anos), mas redirecionamento parece ser muito mais comum. Obrigado.
21412 Dennis
O @Dennis Piping está usando o pipe |para conectar a saída de um programa / comando à entrada de outro. Relacionado .
Daniel Beck
@DanielBeck: Eu quis dizer que vi canalização para um arquivo . Exemplo: Aprenda o Windows PowerShell em um mês de almoços - canalizando para um arquivo ou impressora
Dennis
Note-se que de acordo com a página 43, no PowerShell > fooé apenas açúcar sintático para | Out-File foo, e, portanto, é uma forma de tubulação ;-)
Daniel Beck