Introdução
O redirecionamento de I/O (Input/Output) no Linux é um recurso poderoso que permite controlar para onde a saída de um comando vai e de onde vem a entrada de um comando. Ao dominar o redirecionamento de I/O, você pode salvar as saídas de comandos em arquivos, combinar múltiplos comandos e lidar com erros de forma eficiente.
Neste laboratório, você aprenderá como usar diferentes operadores de redirecionamento no Linux. Você praticará o redirecionamento da saída padrão para arquivos, a adição de saída a arquivos existentes e o gerenciamento de mensagens de erro por meio de redirecionamento. Essas habilidades são essenciais para qualquer usuário Linux e tornarão suas operações na linha de comando mais eficientes e organizadas.
Redirecionamento Básico de Saída
No Linux, os comandos normalmente exibem sua saída na tela. No entanto, usando o redirecionamento de I/O, você pode enviar essa saída para arquivos em vez disso. O operador de redirecionamento mais básico é >, que envia a saída para um arquivo.
Vamos começar criando uma estrutura de diretórios para nossa prática:
cd ~/project
mkdir -p io_practice
cd io_practice
Agora, vamos ver como o redirecionamento funciona. Quando você usa o comando echo, ele exibe texto na tela:
echo "Hello, Linux World!"
Você deve ver esta saída:
Hello, Linux World!
Para redirecionar essa saída para um arquivo em vez de exibi-la na tela, use o operador >:
echo "Hello, Linux World!" > greeting.txt
Este comando não produz nenhuma saída visível porque o texto foi redirecionado para o arquivo. Vamos verificar se o arquivo foi criado e contém nosso texto:
ls -l greeting.txt
cat greeting.txt
Você deve ver algo como:
-rw-r--r-- 1 labex labex 19 Oct 25 10:00 greeting.txt
Hello, Linux World!
O operador > cria um novo arquivo se ele não existir ou sobrescreve completamente o arquivo se ele já existir. Vamos demonstrar isso sobrescrevendo nosso arquivo:
echo "New content replaces old content completely." > greeting.txt
cat greeting.txt
Saída:
New content replaces old content completely.
Como você pode ver, o conteúdo original desapareceu, substituído pelo novo conteúdo.
Adicionando Saída a Arquivos
Às vezes, você deseja adicionar conteúdo a um arquivo sem sobrescrever o que já está lá. Para esse propósito, o Linux fornece o operador >>, que adiciona a saída ao final de um arquivo.
Vamos adicionar algum texto ao nosso arquivo greeting.txt existente:
echo "This line will be added to the end of the file." >> greeting.txt
cat greeting.txt
Saída:
New content replaces old content completely.
This line will be added to the end of the file.
Como você pode ver, o novo conteúdo é adicionado ao final do arquivo, preservando o conteúdo existente.
Vamos criar um novo arquivo chamado log.txt e adicionar várias entradas a ele, simulando um arquivo de log:
echo "Log entry 1: System started" > log.txt
echo "Log entry 2: User logged in" >> log.txt
echo "Log entry 3: Application launched" >> log.txt
Agora, vamos verificar o conteúdo do nosso arquivo de log:
cat log.txt
Saída:
Log entry 1: System started
Log entry 2: User logged in
Log entry 3: Application launched
Você também pode usar o redirecionamento com outros comandos, não apenas echo. Por exemplo, vamos usar o comando ls para listar arquivos e salvar a saída em um arquivo:
ls -l > file_list.txt
cat file_list.txt
A saída mostra a lista detalhada de arquivos em seu diretório atual, que foi salva em file_list.txt.
Lembre-se:
>cria um novo arquivo ou sobrescreve um arquivo existente>>adiciona ao final de um arquivo existente ou cria um novo arquivo se ele não existir
Redirecionamento de Saída de Erro
No Linux, os comandos produzem dois tipos de saída:
- Saída padrão (stdout) - a saída normal de um comando
- Erro padrão (stderr) - mensagens de erro geradas por um comando
Até agora, estivemos redirecionando a saída padrão. Vamos aprender como redirecionar o erro padrão.
O erro padrão usa o descritor de arquivo 2, então, para redirecioná-lo, usamos 2>. Vamos tentar listar um arquivo que não existe, o que gerará um erro:
ls non_existent_file.txt
Você verá uma mensagem de erro:
ls: cannot access 'non_existent_file.txt': No such file or directory
Agora, vamos redirecionar essa mensagem de erro para um arquivo:
ls non_existent_file.txt 2> error.log
Desta vez, você não verá nenhuma mensagem de erro na tela porque ela foi redirecionada para o arquivo error.log. Vamos verificar o conteúdo deste arquivo:
cat error.log
Saída:
ls: cannot access 'non_existent_file.txt': No such file or directory
Você também pode redirecionar tanto a saída padrão quanto o erro padrão para arquivos diferentes:
## Create a file we can successfully list
echo "This is a test file" > existing_file.txt
## Redirect stdout to one file and stderr to another
ls existing_file.txt non_existent_file.txt > output.log 2> error2.log
## Check both files
echo "Content of output.log:"
cat output.log
echo "Content of error2.log:"
cat error2.log
Saída:
Content of output.log:
existing_file.txt
Content of error2.log:
ls: cannot access 'non_existent_file.txt': No such file or directory
Você pode até mesmo redirecionar tanto stdout quanto stderr para o mesmo arquivo usando &>:
ls existing_file.txt non_existent_file.txt &> combined.log
cat combined.log
Isso capturará tanto a saída normal quanto quaisquer mensagens de erro no arquivo combined.log.
Resumo
Neste laboratório, você aprendeu os conceitos fundamentais de redirecionamento de E/S (I/O) no Linux. Você praticou:
- Redirecionamento básico de saída usando o operador
>para criar ou sobrescrever arquivos - Adicionando saída a arquivos existentes usando o operador
>> - Redirecionamento de erro padrão usando o operador
2> - Redirecionando tanto a saída padrão quanto o erro padrão para arquivos diferentes ou para o mesmo arquivo
Essas técnicas de redirecionamento são ferramentas essenciais para operações na linha de comando do Linux. Elas permitem que você:
- Salve a saída de comandos para referência posterior
- Crie arquivos de log para depuração
- Suprima mensagens de erro quando necessário
- Combine múltiplas saídas em um único arquivo
Ao dominar o redirecionamento de E/S, você adicionou habilidades valiosas ao seu conjunto de ferramentas Linux que o ajudarão a trabalhar de forma mais eficiente e eficaz com a linha de comando.



