¿Está bien usar el mismo archivo de entrada como salida de un comando canalizado?

Considera algo como:

cat file | command > file

¿Es esta una buena práctica? ¿Podría esto sobrescribir el archivo de entrada al mismo tiempo que lo estamos leyendo, o siempre se lee primero en la memoria y luego se canaliza al segundo comando?

Obviamente, puedo usar archivos temporales como paso intermedio, pero me pregunto ...

t=$(mktemp)
cat file | command > ${t} && mv ${t} file

Respuestas a la pregunta(3)

Su respuesta a la pregunta