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_folderA 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.txtO 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.txtA 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>&1Isso redireciona stderr para onde quer que o stdout esteja indo, combinando tudo em um arquivo.
Desafio
FácilUse o operador 2> para redirecionar uma mensagem de erro para um arquivo. Execute estes dois comandos em ordem:
- Tente listar uma pasta chamada
missing_folderusandols, e redirecione a mensagem de erro para um arquivo chamadoerrors.txt - Use
catpara exibir o conteúdo deerrors.txt
Dica: O formato é
ls foldername 2> filename. A mensagem de erro vai para o arquivo em vez de aparecer na tela. Usecatpara 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.txtO 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.txtPara enviar ambos os fluxos para o mesmo arquivo, use 2>&1:
ls existing_folder nonexistent_folder > all_output.txt 2>&1Experimente você mesmo
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
4Diretórios
Criar um DiretórioCopiar um DiretórioMover e Renomear um DiretórioExcluir um DiretórioResumo - Operações com Diretórios7Conteúdo do Arquivo
Head e TailContagem de PalavrasComando SortComando UniqGrep BásicoGrep com FlagsResumo - Detetive de Texto10Projeto Analisador de Log
Visão Geral do ProjetoVisualizando o Arquivo de Log2Navegação
Imprimir Diretório de TrabalhoListar ArquivosMudar DiretórioCaminhos Absolutos vs RelativosDiretório Home e RaizResumo - Encontre Seu Caminho8Redirecionamento
Saída PadrãoSobrescrever em um ArquivoAnexar a um ArquivoEntrada PadrãoErro PadrãoRecapitulação - Construtor de Log3Arquivos
Criar um ArquivoLer um ArquivoCopiar um ArquivoMover e Renomear um ArquivoExcluir um ArquivoResumo - Operações com Arquivos6Curingas e Padrões
O Curinga AsteriscoO Curinga InterrogaçãoCuringas de ColchetesCombinando CuringasResumo - Operações Seletivas9Pipes
O Que é um PipeEncadeando Dois ComandosEncadeando Múltiplos ComandosPipe com GrepResumo - Pipeline de Dados