>
es el operador de redirección de shell. Consulte ¿Cuál es la diferencia entre ">" y ">>" en el comando de shell? y ¿ Cuándo debo usar <o <() o << y> o> ()? Se utiliza principalmente para redirigir la salida de un comando a un archivo. Si el archivo no existe, el shell lo crea. Si existe, el shell lo trunca (lo vacía). Simplemente > file
, no hay ningún comando, por lo que el shell crea un archivo, pero no se le envía ningún resultado, por lo que el efecto neto es la creación de un archivo vacío o el vaciado de un archivo existente.
touch
es un comando externo que crea un archivo o actualiza la marca de tiempo, como ya sabe. Con touch
, el contenido del archivo no se pierde, si existe, a diferencia de >
.
El comportamiento de >
depende del shell. En bash, dash y la mayoría de los shells, > foo
funcionará como espera. En zsh, por defecto, > foo
funciona como cat > foo
: zsh espera a que escriba la entrada.
man bash
. Es un documento largo y tomará días o incluso semanas para entenderlo bien, pero vale la pena leerlo si quieres aprender Bash a fondo.