Se eu fizer isso: ls 1>/dev/null
então, como esperado, não há saída para a tela porque ela foi redirecionada para /dev/null. No entanto, se eu fizer isso, ls 1>/dev/null | less
vejo a listagem de arquivos do diretório atual. Como?!?
Se eu fizer isso: ls 1>/dev/null
então, como esperado, não há saída para a tela porque ela foi redirecionada para /dev/null. No entanto, se eu fizer isso, ls 1>/dev/null | less
vejo a listagem de arquivos do diretório atual. Como?!?
Você está usando o
zsh
shell.Seu pipeline primeiro redireciona o fluxo de saída padrão de
ls
para/dev/null
, e então também o redireciona via pipe paraless
. Com ozsh
shell, isso significa que os dados são duplicados e enviados para/dev/null
eless
.O recurso
zsh
que faz isso é chamado de "multios", e é habilitado por padrão. Você pode desligá-lo usandounsetopt multios
.Você canaliza em
zsh
,é funcionalmente equivalente ao seguinte pipeline em
sh
oubash
(etc.),