Existem três "fluxos de arquivos padrão" que os processos do Unix podem usar - stdin
, stdout
e stderr
- stdin
normalmente lêem entrada do teclado e stdout
e stderr
geralmente vá para a janela do terminal. stderr
obtém o número do descritor de arquivo 2
e stdout obtém o número do descritor de arquivo 1
. 2>&1
significa "redireciona toda a saída para stderr para o mesmo lugar que a stdout está indo". /dev/null
é um dispositivo de caractere - simplesmente descarta qualquer coisa escrita nele.
Se você não quiser armazenar a saída de um script em qualquer lugar e não quiser vê-lo no seu terminal, poderá redirecionar stderr
para o mesmo local que stdout
com 2>&1
, e, em seguida, redirecione stdout
para /dev/null
com > /dev/null
Se você fosse redirecionar apenas stdout
com > /dev/null
, ainda veria erros no seu terminal.