Normalmente usamos un archivo diferente para redirigir la salida.
Por ejemplo :
cat < first > temp
En este comando, el contenido de first se redirige a temp en lugar de a la salida estándar.
Entonces, ¿por qué trunca el archivo si uso el mismo nombre de archivo?
¿Por qué no puede sobrescribir el mismo archivo?
cat < first > first
fuente
cat < first > temp
funciona bien