Respuestas:
>
no es un comando sino una redirección de descriptor de archivo. Esto significa que el shell analiza esta asignación, la elimina de la línea de comando y cambia el entorno para el nuevo proceso en el que se inicia. El nuevo proceso no nota esta parte de la línea de comando. Esa es la razón por la que puedes ponerlo en todas partes: al principio, al final o en el medio.
Busque el REDIRECTION
bloque adentro man bash
.
Para adjuntar a un archivo existente que necesita usar >>
.
>
es un operador de redireccionamiento . Tenga en cuenta que el uso >
para redirigir a un archivo normal sobrescribirá lo que ya está allí, a menos que no se configure noclobber . >>
se agregará al final del archivo.
noclobber
se ha establecido (bash).
noclobber
no es solo un bashismo. Es parte de POSIX
Como han respondido otras personas, >
no es un comando, sino un operador de redireccionamiento. Sin embargo, el término "operador de redireccionamiento" no se refiere específicamente a >
, sino a varios operadores de redireccionamiento posibles. La dash
página de manual enumera lo siguiente como operadores de redirección:
< > >| << >> <& >& <<- <>
No estoy seguro de que haya un nombre individual válido para cada uno. Tal vez si buscas en algunos viejos manuales de shell encontrarás algo interesante. Esta fuente , correcta o incorrecta, sin duda tiene una oportunidad para nombrar algunos de ellos:
> - 'output redirection operator'
< - 'input redirection operator'
>> - 'output append operator'
Pero también:
2> - 'standard error redirection operator'
Sin embargo, no creo que esto sea realmente correcto ya 2
que técnicamente es un argumento más que parte del operador.
Una referencia rápida (en caso de que no reconozca ninguno de los anteriores):
> - redirect output stream to a file, eg >somefile (for stdout) or 2>somefile
>| - as above but overwrite the file even if the noclobber shell option is set
>> - append output stream to file
< - redirect input stream from file, n defaults to 0 for stdin
<> - open file for reading and writing on stdin
>& - redirect output stream to another stream (eg >&1) or close with - (eg 2>&-)
<< - here document - see http://en.wikipedia.org/wiki/Here_document
<<- - here document with leading tabs removed.
En bash
ti también tienes:
<<< - here string, a one line here file. Eg <<<"foo bar"
<<-
elimina las pestañas y espacios iniciales?
>
redirige la salida a un archivo (o dispositivo) sobrescribiendo cualquier cosa que ya exista allí
>>
redirige la salida a un archivo (o dispositivo) que se agrega a cualquier cosa que ya exista allí
<
dirige datos desde un archivo (o dispositivo) a un programa o dispositivo
<<
un documento aquí
<<
es un documento aquí
noclobber
está configurada,>|
anulará y permitirá bloquear el archivo.