De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 16 de janeiro de 2017
Quando executamos um comando que afeta diversos arquivos ou objetos no sistema, as mensagens de erro exibidas na tela aparecem misturadas a comandos executados corretamente. É importante que possamos identificar as mensagens de erro prontamente para podermos atuar mais rapidamente e resolver o que estiver incorreto.
Um caso bastante comum é o comando find
. Sempre que for encontrado
algum diretório no qual não tenhamos permissão de acesso, serão geradas
mensagens de erro. Dependendo da amplitude do comando, podemos ter centenas
ou mesmo milhares de mensagens de erro. Podemos então, se for o caso, descartar
estas mensagens:
$ find / -name foo 2> /dev/null
O dispositivo /dev/null
é o buraco negro de sistemas *nix, tudo que jogamos
nele desaparece.
Podemos também gravar esta saída em um arquivo:
$ find / -name foo 2> /tmp/listing.txt
As mensagens no arquivo /tmp/listing.txt são do tipo:
find: `/lost+found': Permission denied
find: `/sys/fs/fuse/connections/27': Permission denied
find: `/sys/kernel/debug': Permission denied
Como eu executei este comando com as permissões de um usuário sem privilégios, eu não tenho acesso às informações de muitos arquivos.
Posso também gravar a saída padrão (stdout) em um arquivo, e a saída de erro (stderr) em um outro arquivo:
$ $ find / > /tmp/stdout.txt 2> stderr.txt
Referência: My Favorite bash Tips and Tricks