
No Ksh, para redirecionar E/S de um comando para longe da saída/erro padrão, eu faço, [onde comando é qualquer comando que produza saída/erro]
command 2>filename
command 2>/dev/null
ou
command &>filename
command &>/dev/null
Em bash , muitas vezes vejo códigos como
command >&/dev/null
o que esse adicional &
significa, quando o mesmo pode ser feito usando
command> /dev/null
Eu sei que estou perdendo alguma coisa, mas estou feliz em aprender.
EDIT: Eu sabia o que é 2>&1, o que a chamada pergunta duplicada faz. Disseram-me que 1 indica um descritor de arquivo e, portanto, precisamos de um & para nos referirmos a isso. Fiquei intrigado ao ver & antes do nome do arquivo. Daí esta questão.
Responder1
>&fname
é o mesmo que
>fname 2>&1
ou seja, ele redirecionaambosstdout e stderr no arquivo fname
. Consulte bash(1)
a página de manual, seção REDIRECTION
(especialmente sua parte Redirecting Output
) para explicação detalhada.