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.

bash - redirecionamento da saída de erro (stderr)

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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida