Como salvar a saída de um comando em um arquivo no terminal Linux [Dica para iniciantes]

21 de novembro de 2020

Quando você executa um comando ou script no terminal Linux, ele imprime a saída na tela para sua visualização imediata.

Haverá momentos em que você precisará salvar a saída em um arquivo para referências futuras. Claro, você certamente pode copiar e colar no terminal Linux, mas há maneiras melhores de salvar a saída de um script de shell ou comando na linha de comando do Linux. Deixe-me mostrar a você.

Método 1: use o redirecionamento para salvar a saída do comando em um arquivo no Linux

Você pode usar o redirecionamento no Linux para essa finalidade. Com o operador de redirecionamento, em vez de mostrar a saída na tela, ele vai para o arquivo fornecido.

  • O > redireciona a saída do comando para um arquivo substituindo qualquer conteúdo existente no arquivo.
  • O >> redireciona adiciona a saída do comando no final do conteúdo existente (se houver) do arquivo.

Use o operador de redirecionamento STDOUT > para redirecionar a saída para um arquivo como este:

Comandos para usar no terminal

comando > arquivo.txt

Se o arquivo.txt não existir, ele será criado automaticamente. Se você usar o > e redirecionar novamente com o mesmo arquivo, o conteúdo do arquivo será substituído pela nova saída.

O exemplo abaixo demonstra isso melhor. Primeiro, ele salva a saída do comando ls -l. E mais tarde, ele substitui o conteúdo do arquivo pela saída do comando ls *.c.

Redirecionando a saída do comando para arquivo no Linux

Redirecionando a saída do comando para arquivo

Se você não quiser perder o conteúdo do arquivo existente ao salvar a saída de um script ou comando, use a operação de redirecionamento no modo anexar com >>.

Comandos para usar no terminal

comando >> arquivo.txt

Este exemplo demonstra isso melhor:

Redirecionando a saída do comando para arquivo

Redirecionamento de saída do comando para o arquivo no modo anexar

Mesmo que o arquivo não exista, ele é criado automaticamente.

Dica bônus: salve a saída do comando Linux e também o erro em um arquivo

Se o seu comando do Linux retornar um erro, ele não será salvo no arquivo. Você pode salvar a saída do comando e o erro do comando no mesmo arquivo usando 2> & 1 como este:

Comandos para usar no terminal

comando > arquivo.txt 2 > & 1

Basicamente, 0 significa entrada padrão, 1 para saída padrão e 2 para erro padrão. Aqui, você está redirecionando (>) o erro padrão (2) para o mesmo endereço (&) da saída padrão (1).

Método 2: use o comando tee para exibir a saída e salvá-la em um arquivo também

A propósito, você percebeu que ao enviar a saída do comando para um arquivo, você não consegue mais vê-la no visor? O comando tee no Linux resolve esse problema para você.

Como um tubo em T que envia o fluxo de água em duas direções, o comando tee envia a saída para o monitor e também para um arquivo (ou como entrada para outro comando). Você pode usá-lo assim:

Comandos para usar no terminal

comando | tee arquivo.txt

Novamente, o arquivo será criado automaticamente, se ainda não existir.

Você também pode usar o comando tee no modo anexar com a opção -a desta maneira:

Comandos para usar no terminal

comando | tee -a arquivo.txt

Deixe-me demonstrá-lo com alguns exemplos fáceis de seguir:

Exibir e salvar saída de comando do Linux

Usei comandos simples do Linux em meus exemplos. Mas fique tranquilo, você pode usar esses métodos para salvar a saída de scripts bash também.

Observação: evite a armadilha do pipe enquanto salva a saída do comando em um arquivo

Você provavelmente está familiarizado com o redirecionamento de pipe. Você pode usá-lo para combinar comandos do Linux, mas não pode canalizar a saída para um arquivo. Irá resultar em erro dizendo que o comando de nome de arquivo não foi encontrado:

Pipe Output To File Linux

Isso ocorre porque o pipe redireciona a saída de um outro comando. E, neste caso, você dá a ele um nome de arquivo enquanto ele esperava um comando.

Se você é novo na linha de comando do Linux, espero que este tutorial rápido tenha adicionado um pouco ao seu conhecimento do Linux. Redirecionamento de E/S é um conceito essencial do qual devemos estar atentos.

Como sempre, dúvidas e sugestões são sempre bem vindas.

Confira também a versão original desse post em inglês
Esse post foi originalmente escrito por Abhishek Prakash e publicado no site itsfoss.com. Traduzido pela rtland.team

How to Save the Output of a Command to a File in Linux Terminal [Beginner’s Tip]

Propaganda
Blog Comments powered by Disqus.
Propaganda