redirecionamento de entrada e saída no bash

redirecionamento de entrada e saída no bash

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.

informação relacionada