Por que o redirecionamento de E/S não funciona ao eliminar trabalhos em segundo plano?

Por que o redirecionamento de E/S não funciona ao eliminar trabalhos em segundo plano?
[~]$ kill %123

bash: kill: %123: no such job

[~]$ kill %123 2>&1 > /dev/null

bash: kill: %123: no such job

Quero desabilitar todas as saídas durante a eliminação de trabalhos em segundo plano.

A primeira saída é esperada. No entanto, a segunda saída não é.

Conforme mostrado na linha de comando, adiciono 2>&1para redirecionar stderrpara stdoute uso > /dev/nullpara redirecionar toda a saída para o dispositivo nulo. Mas a saída ainda é mostrada no terminal.

Alguma explicação?

Desde já, obrigado.

Informação atualizada:

O seguinte comando funciona conforme o esperado:

kill %123 > /dev/null 2>&1

Responder1

O redirecionamento de saída é uma propriedade do processo. Portanto, ao redirecionar com 2>&1 isso define oatualsaída de stdout para stderr que é o TTY atual, então o seguinte > define o stdout para /dev/null que deixa stderr definido para o TTY. Nas suas informações atualizadas, você configurou corretamente o stdout primeiro, para que ambos acabem sendo/dev/null.

informação relacionada