Si quiero hacer que el contenido file2
coincida con el contenido de file1
, obviamente podría simplemente ejecutarlo cp file1 file2
.
Sin embargo, si quiero conservar todo alrededor file2
, excepto el contenido-propietario, permisos, atributos extendidos, ACL, enlaces duros, etc., etc., entonces yo no desee ejecutar cp
. * En ese caso, sólo quiero el plop contenido de file1
into file2
.
Parece que lo siguiente lo haría:
< file1 > file2
Pero no funciona. file2
se trunca a nada y no se escribe en. Sin embargo,
cat < file1 > file2
hace el trabajo.
Me sorprendió que la primera versión no funcione.
¿Es la segunda versión un UUOC? ¿Hay alguna manera de hacer esto sin invocar un comando, simplemente usando redirecciones?
Nota: Soy consciente de que UUOC es más un punto pedante que un verdadero antipatrón.
* Como tniles09 descubrió , cp
voluntad en el trabajo hecho en este caso.
<
...
file1
no existe o si no es legible y lo abre <
antes de >
que se abra la salida, y luego considere lo que sucede cuando permite cat
intentar abrirlo.
cat
(por defecto), esencialmente ejecuta el segundo comando. Vea la respuesta de Stéphane Chazelas a continuación para obtener más información sobre eso que lo que cabe en un comentario.
< file1 > file2
hace lo que quiere depende de la shell.