&>
e >&
semi-equivalência (derrube)
A zsh
seção Redirecionamentos manual diz que:
são equivalentes.
Ambos irão derrotar o arquivo - truncá-lo para 0 bytes antes de gravá-lo, assim como > file
faria no caso somente de STDIN.
No entanto , obash
seção Redirecionamentos manuais acrescenta que:
Das duas formas, a primeira é preferida. Isso é semanticamente equivalente a
>word 2>&1
Ao usar o segundo formulário, palavra não pode ser expandida para um número ou -
. Caso isso aconteça, outros operadores de redirecionamento se aplicam (consulte Duplicar descritores de arquivo abaixo) por motivos de compatibilidade.
Portanto, enquanto você marca zsh
, provavelmente é uma boa prática obter a memória dos dedos na primeira forma, caso alguém escreva umbash
script.
>> logfile 2>&1
e &>>
equivalência (anexar)
Aqui, logfile
não é substituído, mas aberto para gravação no final do arquivo, ou seja, modo de adição ( O_APPEND
).
O equivalente em ambos {ba,z}sh
é:
command1 &>> logfile
Dentro bash
:
O formato para anexar saída padrão e erro padrão é:
&>>word
Isso é semanticamente equivalente a
>>word 2>&1
(consulte Duplicar descritores de arquivo abaixo).
(Nota: o uso de sobras de &>
excesso >&
na seção acima é recomendado novamente, pois existe apenas uma maneira de anexarbash
.)
zsh
permite ambos &>>
e >>&
formas.