Menu
Coddy logo textTech

Erro Padrão

Parte da seção Fundamentos do Journey de Terminal da Coddy — lição 41 de 82.

O terceiro e último fluxo de dados é erro padrão, abreviado como stderr. Este fluxo é especificamente para mensagens de erro e avisos, mantendo-os separados da saída normal.

Quando um comando falha, a mensagem de erro vai para o erro padrão, não para a saída padrão:

ls nonexistent_folder

A mensagem de erro que você vê vem pelo stderr. Essa separação importa porque você pode redirecionar erros de forma independente da saída regular.

Para redirecionar o erro padrão, use 2> em vez de >:

ls nonexistent_folder 2> errors.txt

O 2 refere-se ao número do descritor de arquivo do stderr (stdout é 1, stderr é 2). Este comando captura a mensagem de erro em errors.txt, mantendo seu terminal limpo.

Você pode redirecionar ambos os fluxos para arquivos diferentes:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

A saída bem-sucedida vai para output.txt, enquanto quaisquer erros vão para errors.txt. Para enviar ambos os fluxos para o mesmo arquivo, use 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Isso redireciona stderr para onde quer que o stdout esteja indo, combinando tudo em um arquivo.

challenge icon

Desafio

Fácil

Use o operador 2> para redirecionar uma mensagem de erro para um arquivo. Execute estes dois comandos em ordem:

  1. Tente listar uma pasta chamada missing_folder usando ls, e redirecione a mensagem de erro para um arquivo chamado errors.txt
  2. Use cat para exibir o conteúdo de errors.txt

Dica: O formato é ls foldername 2> filename. A mensagem de erro vai para o arquivo em vez de aparecer na tela. Use cat para verificar se foi capturada.

Folha de consulta

O fluxo de erro padrão (stderr) é usado para mensagens de erro e avisos, mantendo-os separados da saída normal.

Para redirecionar o erro padrão, use 2>:

ls nonexistent_folder 2> errors.txt

O 2 refere-se ao número do descritor de arquivo do stderr (stdout é 1, stderr é 2).

Você pode redirecionar tanto o stdout quanto o stderr para arquivos diferentes:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

Para enviar ambos os fluxos para o mesmo arquivo, use 2>&1:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos