Você sabe o que é um operador de redirecionamento? Já perdeu uma tarde inteira copiando mensagens de erro da tela, salvando-as num bloco de notas e ainda assim esquecendo metade? Ou tentou rodar um backup noturno e, no dia seguinte, descobriu que o prompt de comando travou por causa de um erro besta que poderia ter sido ignorado? Se a resposta for “sim”, você está a cinco minutos de nunca mais passar por isso.
O segredo está em dez símbolos que parecem coisa de nerd: >, >>, <, 2>, |, &&, ||… Mas, depois de hoje, você vai chamar esses sinais de salvadores de paciência. Preparei este guia para que qualquer pessoa — do estudante que só quer entregar o trabalho da faculdade ao analista que precisa automatizar relatórios — entenda o que é, para que serve e como usar os operadores de redirecionamento do prompt de comando, sem precisar decorar definições abstratas.
Índice
1. A grande sacada do operador de redirecionamento: por que redirecionar?
Imagine um encanamento. A água (dados) nasce na rua (programa), passa pela torneira (saída padrão) e cai na pia (tela). O operador de redirecionamento é um cano extra que você conecta para levar a água até uma caixa d’água (arquivo), para um filtro (outro programa) ou para um ralo de emergência (log de erro).
Assim, em vez de encher a tela de texto, você:
- salva resultados num arquivo para ler depois;
- esconde mensagens de erro que só atrapalham;
- junta várias informações num único lugar;
- encadeia comandos para rodar um atrás do outro automaticamente.
Tudo isso sem abrir um segundo programa. É só acrescentar um ou dois caracteres ao comando.
Leia também: Prompt de comando: o que é e como usá-lo?
2. O básico que ninguém explica direito: STDIN, STDOUT e STDERR
Não fuja! São só três rótulos que o sistema usa para organizar o tráfego de dados:
- STDIN (0) – entrada padrão: tudo o que você digita ou que vem de um arquivo usado como entrada.
- STDOUT (1) – saída padrão: o resultado “certo” do comando, normalmente exibido na tela.
- STDERR (2) – saída de erro: as reclamações do sistema, também aparecem na tela, mas em fluxo separado.
O truque é desviar esses fluxos. Fazendo isso, você decide: “Quero ver só o que deu certo”, ou “Quero guardar os erros para analisar depois”, ou ainda “Quero que tudo vá para o mesmo arquivo”.
3. O cardápio do operador de redirecionamento (Windows CMD e Linux Bash)
A tabela abaixo é o seu carta de restaurante. Escolha o prato certo para cada fome:
| Símbolo | O que ele faz | Exemplo prático e rápido | ||||
|---|---|---|---|---|---|---|
> | Manda a saída certa (STDOUT) para um arquivo, substituindo o que já existe. | dir C:\Users > pastas.txt cria um relatório de pastas. | ||||
>> | Mesma coisa, mas adiciona no final do arquivo (append). | echo --- Fim do log >> log.txt | ||||
| `< | Usa um arquivo como entrada para o comando. | sort < lista_de_nomes.txt ordena o que está dentro do arquivo. | ||||
2> | Redireciona só os erros (STDERR). | copia arquivo_inexistente.txt destino.txt 2> erros.log | ||||
2>> | Anexa erros ao arquivo sem apagar o conteúdo anterior. | compila.exe 2>> erros_de_hoje.txt | ||||
>& ou 1> e 2> juntos | Manda saída e erro para o mesmo arquivo. | meu_script.bat > tudo.txt 2>&1 (CMD) ou meu_script.sh &> tudo.txt (Bash) | ||||
| ` | ` | Pipe: transforma a saída de um comando na entrada de outro. | `dir | find “pdf”` mostra só arquivos PDF. | ||
&& | Só executa o próximo comando se o anterior não falhar. | compila.exe && executa.exe | ||||
| ` | ` | Só executa o próximo comando se o anterior falhar. | `compila.exe | echo “Compilação falhou!”` |
Decorar regras é chato, mas brincar de LEGO com esses blocos gruda na memória. Vamos montar?

4. Passo a passo: do zero ao primeiro script útil
4.1 Salvando uma listagem de arquivos
- Abra o prompt (Win + R →
cmd). - Digite:
dir C:\Users\%USERNAME%\Documents > minha_pasta.txt - Pressione Enter.
- Abra o arquivo
minha_pasta.txtque surgiu na pasta atual.
Pronto: você exportou a lista sem copiar nada com o mouse.
4.2 Adicionando data e hora no final do relatório
echo Relatório gerado em %date% %time% >> minha_pasta.txt- Abra o arquivo de novo: a nova linha está lá embaixo, sem apagar o resto.
4.3 Separando erros de saídas normais
Imagine copiar uma pasta que talvez não exista:xcopy C:\PastaQueNaoExiste D:\Backup /s /e 1> acertos.txt 2> problemas.txt
- Se a pasta existir,
acertos.txtreceberá estatísticas. - Se não existir,
problemas.txtconterá a reclamação do sistema, eacertos.txtficará vazio.
Você acabou de criar dois relatórios sem abrir uma única janela extra.
4.4 Juntando tudo num único log
Para auditoria, é melhor ter tudo junto:xcopy C:\Projeto D:\Backup /s /e > backup_completo.log 2>&1
A ordem importa: primeiro dizemos para onde a saída vai (> backup_completo.log); depois pedimos para os erros seguirem o mesmo caminho (2>&1).
Resultado: um único arquivo com o que deu certo e o que deu errado, cronologicamente misturado. Ideal para debugar scripts que rodam à meia-noite.
5. Linux? Um operador de redirecionamento funciona quase igual!
Se você estiver no Bash (Ubuntu, Fedora, WSL…), pode usar os mesmos símbolos, mas existem atalhos fofos:
&> tudo.txt– manda stdout e stderr juntos.|&– pipe que já leva stdout + stderr.
Exemplo:gcc meu_programa.c -o meu_programa &> compila.txt
Depois, é só conferir compila.txt para ver warnings e erros.
6. Truques de mestre do operador de redirecionamento que impressionam no trabalho
6.1 Filtros com pipe
Precisa saber quantos arquivos .log existem na pasta?dir | find /c ".log"
O dir lista tudo, o find conta (/c) linhas que contenham “.log”. Uma linha, um número, problema resolvido.
6.2 Encadeando comandos com && e ||
Você quer parar o script se a compilação falhar:gcc app.c -o app.exe && echo Compilou! && app.exe || echo "Ops, algo deu errado."
Se o gcc falhar, nada depois de && será executado; a mensagem de erro aparecerá.
6.3 Criando um “cemitério” de erros
Às vezes o programa late demais. Mande os erros para o buraco negro:meu_programa_que_fala_demais 2> nul (no Windows)meu_programa 2> /dev/null (no Linux)
Use com moderação: esconder erros pode esconder problemas reais.
7. Exemplo real de operador de redirecionamento: backup noturno com log por e-mail
Objetivo: copiar a pasta de projetos toda noite, gerar um log e, se falhar, avisar por e-mail.
Script Windows (backup.bat):
@echo off
set DATA=%date:~-4,4%-%date:~-10,2%-%date:~-7,2%
set HORA=%time:~0,2%_%time:~3,2%
set ARQ_LOG=C:\Logs\backup_%DATA%_%HORA%.log
echo Iniciando backup... > "%ARQ_LOG%"
xcopy C:\Projetos D:\Backup\Projetos /s /e /y >> "%ARQ_LOG%" 2>&1
if errorlevel 1 (
echo Backup falhou! Veja o log: %ARQ_LOG% | mailto [email protected] -s "Falha no backup"
) else (
echo Backup concluido com sucesso >> "%ARQ_LOG%"
)
Reparou? Um único xcopy com >> e 2>&1 gera o log completo.
O if errorlevel 1 testa o resultado; se deu erro, dispara o aviso.
Dois operadores, poucas linhas, zero intervenção humana após a meia-noite.
8. Armadilhas que todo mundo cai (e como evitar)
- Ordem dos redirecionamentos
2>&1 > tudo.txtnão faz o que você espera no CMD. O erro vai para a tela e só a saída normal vai pro arquivo. Use> tudo.txt 2>&1. - Apagar sem querer
> arquivo.txtcria ou zera o conteúdo. Confira se não há nada importante antes. - Path com espaços
Sempre use aspas:dir "C:\Program Files" > lista.txt. - Confundir pipe com redirecionamento
|manda dados para outro comando;>manda para arquivo. Não dá para fazerdir > find.
9. Mini-glossário para impressionar o chefe
- Append: adicionar no final do arquivo (operador
>>). - Overwrite: substituir conteúdo (operador
>). - Pipe: canal que conecta a saída de um comando à entrada de outro.
- STDERR: canal onde programas jogam mensagens de erro.
- STDOUT: canal onde programas jogam resultados normais.
- Stream: nome chique para “fluxo de dados”.
Próximos passos: automatize sem medo
Agora que você já:
- sabe exportar listas,
- separa erros de acertos,
- junta tudo num log só,
- e ainda usa pipes para filtrar,
por que não juntar tudo num arquivo .bat (Windows) ou .sh (Linux) e colocar para rodar no Agendador de Tarefas ou no cron?
Exemplo de ideias simples:
- Limpar temporários do Windows e guardar o que foi apagado em
limpeza.txt. - Verificar se um site está no ar (
ping) e, se não estiver, registrar o horário do erro. - Buscar arquivos grandes (
dir /s) e gerar um ranking em CSV para abrir no Excel.
Conclusão: mão na massa, é agora
Operadores de redirecionamento não são decoração de manual chato; eles são alavanca de produtividade. Com um ou dois caracteres você substitui:
- clicar → copiar → colar → salvar → formatar;
por:
comando > arquivo.txt→ Enter.
Fechar esta aba e não testar é igual assistir aula de natação no sofá: até faz sentido, mas não salva ninguém de afogar. Abra o prompt agora, digite dir > teste.txt e abra o arquivo.
Viu? Funciona de verdade.
Daqui para frente, quando surgir a frase “vou anotar o resultado”, lembre-se: não anote, redirecione. Seus logs estarão sempre atualizados, seus erros catalogados e suas noites de backup, dormindo em paz.




