Adiciona saída de terminal na parte inferior de um arquivo de texto [duplicado]

1

Estou usando:

command > ~/Desktop/file.txt

Meu problema é que eu preciso executar este comando várias vezes, e cada vez ele vai me dar saídas diferentes, neste momento cada vez que executá-lo Ele apaga tudo e salva a nova saída em o arquivo, obviamente, isso não funciona para mim, já que preciso adicionar a nova saída ao longo da saída atual.

Eu realmente aprecio qualquer ajuda.

    
por Castiblanco 04.05.2015 / 23:32

4 respostas

3

Use >> em vez de > :

command >> ~/Desktop/file.txt

Enquanto você estava usando command > ~/Desktop/file.txt , o arquivo ~/Desktop/file.txt foi aberto pelo shell para escrever o conteúdo de STDOUT (descritor de arquivo 1). Portanto, o conteúdo do arquivo será sobrescrito toda vez que você executar o command .

Por outro lado, o shell abrirá o arquivo para acrescentar se você usar o operador >> . Como resultado, as saídas do command serão adicionadas toda vez que você executá-lo.

Eu sugiro que você passe por este manual sobre redirecionamentos de bash .

    
por heemayl 04.05.2015 / 23:34
3

Use '> >'. command >> ~/Desktop/file.txt

    
por BKS 04.05.2015 / 23:35
2

Se você está rodando em um loop, você pode redirecionar a saída de todo o loop.

for (( i = 0; i < n; i++ )); do
    somecommand
done > ~/Desktop/file.txt

Se for um pouco mais complexo (por exemplo, outras coisas que saem também), você pode abri-lo em um descritor de arquivo separado.

exec 3> ~/Desktop/file.txt
...
somecommand >&3
...
somecommand >&3
...
exec 3>&- # closes it
    
por geirha 04.05.2015 / 23:36
1

Você quer >> , não > , assim:

command >> /path/to/file.txt
    
por Tim 04.05.2015 / 23:36