Introdução
Por padrão, os comandos do Linux exibem tudo na tela. Mas e se você quiser salvar esses dados?
Esse processo é chamado de redirecionamento. É como colocar um “endereço de encaminhamento” na sua correspondência.
Essa é uma boa forma de entender a sintaxe do shell em geral: em vez de mudar o que um comando faz essencialmente, o redirecionamento muda para onde a entrada ou a saída dele é enviada.
Neste laboratório, você aprenderá três formas de controlar para onde os dados vão:
- Redirecionar e substituir (
>): salva a saída em um arquivo, substituindo o conteúdo existente. - Redirecionar e adicionar (
>>): adiciona a saída ao final de um arquivo. - Redirecionar erros (
2>): captura somente as mensagens de erro.
Redirecionar a saída (substituir)
O sinal de maior que > é o operador de substituição.
Muitos iniciantes aprendem que > significa “salvar em um arquivo”, mas é mais preciso pensar nele como “enviar a saída padrão para este arquivo e substituir o conteúdo anterior”. Essa distinção se torna importante quando você começa a combinar comandos com mais cuidado.
Ele diz ao Linux: “Pegue a saída deste comando e escreva-a neste arquivo. Se o arquivo existir, apague-o primeiro”.
Vá para o diretório do projeto:
cd ~/project
Redirecione a saída para output.txt:
echo "Hello, Linux." > output.txt
Nada será exibido na tela. O texto foi para o arquivo. Verifique:
cat output.txt
Agora, veja por que chamamos isso de “substituição”. Execute:
echo "This is new content." > output.txt
cat output.txt
O antigo “Hello, Linux.” desapareceu. O operador > limpou o arquivo.
Por isso, o redirecionamento deve ser tratado com o mesmo cuidado que uma modificação de arquivo. Um comando curto pode substituir imediatamente o conteúdo de um arquivo existente.
Adicionar saída ao arquivo (>>)
Muitas vezes, você não quer destruir os dados; quer apenas adicionar conteúdo a eles. Use o sinal de maior que duplicado >>.
Ele funciona como uma instrução de adição.
Adicione uma nova linha a output.txt:
echo "This line is appended." >> output.txt
cat output.txt
Você deverá ver as duas linhas.
O conteúdo original está preservado. Faça novamente:
echo "Another line." >> output.txt
cat output.txt
O operador >> é perfeito para logs.
A adição é importante porque muitos arquivos operacionais crescem com o tempo, em vez de serem recriados do zero. Logs, relatórios e históricos de comandos geralmente usam um fluxo de trabalho que “adiciona conteúdo ao final”.
Redirecionar erros (2>)
Como você aprendeu, o Linux separa a “saída normal” (stdout) da “saída de erro” (stderr).
Os operadores > e >> tratam estritamente da “saída normal”. Eles ignoram os erros.
É aqui que o modelo de fluxos do laboratório anterior se torna prático. Se a saída e os erros são fluxos separados, o Linux pode encaminhá-los para destinos diferentes.
Para capturar erros, usamos 2>. (O identificador da saída de erro padrão é 2.)
Tente listar um diretório inexistente:
ls /missing_directory 2> error.log
A tela permanece em branco. O erro foi capturado e enviado para error.log.
Inspecione o arquivo:
cat error.log
Você verá a mensagem de erro armazenada nele.
O 2 em 2> vem do número convencional do descritor de arquivo da saída de erro padrão. Você ainda não precisa memorizar todos os descritores de arquivo, mas é útil saber que esses números se referem aos canais de fluxo do shell.
Resumo
Você aprendeu a controlar o fluxo dos dados:
>(Substituir): salva a saída em um arquivo, apagando o conteúdo anterior.>>(Adicionar): adiciona a saída ao final do arquivo, preservando o histórico.2>(Redirecionar erros): captura as mensagens de erro.
Essas ferramentas permitem salvar os resultados dos comandos com eficiência.



