Respostas:
>
não é um comando, mas um redirecionamento de descritor de arquivo. Isso significa que o shell analisa essa atribuição, a remove da linha de comando e altera o ambiente para o novo processo no qual é iniciado. O novo processo não percebe essa parte da linha de comando. Essa é a razão pela qual você pode colocá-lo em qualquer lugar: no começo, no final ou no meio.
Procure o REDIRECTION
bloco man bash
.
Para anexar a um arquivo existente, você precisa usar >>
.
>
é um operador de redirecionamento . Observe que o uso >
para redirecionar para um arquivo regular substituirá o que já está lá, a menos que o noclobber esteja definido. >>
será anexado ao final do arquivo.
noclobber
foi definido (bash).
noclobber
não é apenas um basismo. É parte do POSIX
Como outras pessoas responderam, >
não é um comando, mas um operador de redirecionamento. No entanto, o termo 'operador de redirecionamento' não se refere especificamente ao >
, mas a vários operadores de redirecionamento possíveis. A dash
página de manual lista o seguinte como operadores de redirecionamento:
< > >| << >> <& >& <<- <>
Não tenho certeza se existe um nome individual válido para cada um. Talvez se você pesquisar alguns manuais antigos de shell, encontrará algo interessante. Esta fonte , correta ou incorreta, certamente pode nomear alguns deles:
> - 'output redirection operator'
< - 'input redirection operator'
>> - 'output append operator'
Mas também:
2> - 'standard error redirection operator'
No entanto, eu não acho que isso esteja realmente correto, já que 2
tecnicamente é um argumento e não parte do operador.
Uma referência rápida (caso você não reconheça nenhum dos itens acima):
> - 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.
Em bash
você também tem:
<<< - here string, a one line here file. Eg <<<"foo bar"
<<-
remove as guias e os espaços principais?
>
redireciona a saída para um arquivo (ou dispositivo) substituindo tudo o que já existe lá
>>
redireciona a saída para um arquivo (ou dispositivo) anexado a qualquer coisa que já exista lá
<
direciona dados de um arquivo (ou dispositivo) para um programa ou dispositivo
<<
um documento aqui
<<
é um documento aqui
noclobber
estiver configurada,>|
substituirá e permitirá que o arquivo fique acumulado.