Qual é o nome correto para o comando “”

36

Eu estava tentando descobrir como passar um texto para um arquivo sem sobrescrever o que já estava usando o comando > e percebi que não sei como é chamado. A pesquisa pelo comando seta para a direita ou vira à direita ou mais do que não mostrou nada. Eu sempre chamei de passar para .

    
por blarg 03.04.2014 / 17:42

4 respostas

53

> não é um comando, mas um redirecionamento de descritor de arquivo. Isso significa que o shell analisa essa atribuição, remove-a da linha de comando e altera o ambiente para o novo processo no qual ela é iniciada. O novo processo não percebe essa parte da linha de comando. Essa é a razão pela qual você pode colocá-lo em todos os lugares: no início, no final ou no meio.

Procure o bloco REDIRECTION em man bash .

Para anexar a um arquivo existente, você precisa usar >> .

    
por 03.04.2014 / 17:44
29

> é um operador de redirecionamento . Note que usar > para redirecionar para um arquivo regular sobrescreverá o que já existe, a menos que noclobber esteja definido. >> será anexado ao final do arquivo.

    
por 03.04.2014 / 17:44
5

Como outras pessoas responderam, > não é um comando, mas sim 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 diferentes. A página dash man lista os seguintes como operadores de redirecionamento:

 < > >| << >> <& >& <<- <>

Não sei se há um nome individual válido para cada um. Talvez, se você pesquisar alguns manuais antigos de shell, encontre algo interessante. Esta fonte , correta ou incorreta, certamente indica algumas delas:

>  - 'output redirection operator'
<  - 'input redirection operator'
>> - 'output append operator'

Mas também:

2> - 'standard error redirection operator'

No entanto, não acho que isso esteja realmente correto, pois o 2 é tecnicamente um argumento em vez de parte do operador.

Uma referência rápida (no caso de você não reconhecer nenhuma das opções 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"
    
por 05.04.2014 / 11:37
0

> redireciona a saída para um arquivo (ou dispositivo) sobrescrevendo tudo o que já existe lá

>> redireciona a saída para um arquivo (ou dispositivo) anexando a qualquer coisa já existente lá

< direciona os dados de um arquivo (ou dispositivo) para um programa ou dispositivo

<< a aqui documento

    
por 04.04.2014 / 22:16