Hoje eu estava experimentando algumas operações de acréscimo e, por curiosidade, executei isso (onde file1.txt não estava vazio e file2.txt estava vazio):
$ cat file1.txt >> file2.txt >> file1.txt
Quando vi um tempo, pressionei Ctrl+ Cpara finalizar. Até então, o arquivo1.txt tinha centenas de MB.
Mudar os nomes dos arquivos não produz o mesmo efeito; somente quando os arquivos estão nessa ordem é que o redirecionamento infinito acontece. O que exatamente está acontecendo que causa isso?
fonte
Não consegui reproduzir isso em um shell Bash:
1 arquivo é criado com 0 comprimento, mas então recebo a mensagem acima:
Com base na resposta de @ jlliagre, não sei por que estou recebendo os 2 arquivos. Pode ser dependente da
cat
implementação.EDIT # 1
@jlliagre atualizou sua resposta para mostrar esse código que ele afirma como equivalente:
Então agora eu sei por que estou ficando vazia
file2.txt
. Esta notação é legal:E criará um arquivo vazio.
fonte
file1.txt
início não vazio.cat
melhor os redirecionamentos e o comportamento.