Hoy estaba experimentando con algunas operaciones de agregar y, por curiosidad, ejecuté esto (donde file1.txt no estaba vacío y file2.txt estaba vacío):
$ cat file1.txt >> file2.txt >> file1.txt
Cuando lo vi tomar un tiempo, presioné Ctrl+ Cpara finalizarlo. Para entonces, file1.txt tenía un tamaño de cientos de MB.
Cambiar los nombres de archivo no produce el mismo efecto; solo cuando los archivos están en este orden se produce la redirección infinita. ¿Qué está sucediendo exactamente que causa esto?
fuente
No pude reproducir esto en un shell Bash:
Se crea 1 archivo con longitud 0 pero luego aparece el mensaje anterior:
Según la respuesta de @ jlliagre, no estoy seguro de por qué obtengo los 2 archivos. Puede depender de la
cat
implementación.EDITAR # 1
@jlliagre actualizó su respuesta para mostrar este código que afirma como equivalente:
Así que ahora sé por qué estoy obteniendo el vacío
file2.txt
. Esta notación es legal:Y creará un archivo vacío.
fuente
file1.txt
comenzar no vacío.cat
comportamiento.