4Sep

Como salvar a saída de um comando para um arquivo em Bash( como o Linux e o MacOS Terminal)

click fraud protection

Quando você executa um comando no prompt do bash, ele normalmente imprime a saída desse comando diretamente para o terminal para que você possa lê-lo imediatamente. Mas bash também permite que você "redirecione" a saída de qualquer comando, salvando-o em um arquivo de texto para que você possa rever a saída mais tarde.

Isso funciona em bash em qualquer sistema operacional, do Linux e do MacOS ao ambiente bash baseado no Ubuntu do Windows 10.

Opção Um: Redirecionar Saída para Apenas um Arquivo

Para usar o redirecionamento bash, você executa um comando, especifique o & gt;ou & gt; & gt;operador e, em seguida, forneça o caminho de um arquivo para o qual deseja redirecionar a saída.

  • & gt;redireciona a saída de um comando para um arquivo, substituindo o conteúdo existente do arquivo.
  • & gt; & gt;redireciona a saída de um comando para um arquivo, anexando a saída ao conteúdo existente do arquivo.

Tecnicamente, isso redireciona "stdout" - a saída padrão, que é a tela - para um arquivo.

instagram viewer

Aqui está um exemplo simples. O comando ls lista arquivos e pastas no diretório atual. Assim. Quando você executa o seguinte comando, ls irá listar arquivos e pastas no diretório atual. Mas não irá imprimi-los na tela - ele irá salvá-los no arquivo que você especificar.

ls & gt;Arquivo /path/to/

Não é necessário especificar o caminho para um arquivo existente. Especifique qualquer caminho válido e bash irá criar um arquivo nesse local.

Se você visualizar o conteúdo do arquivo, você verá a saída do comando ls. Por exemplo, o comando gato imprime o conteúdo de um arquivo para o terminal:

cat /path/to/ arquivo

Lembre-se, o & gt;O operador substitui o conteúdo existente do arquivo pela saída do comando. Se você quiser salvar a saída de vários comandos em um único arquivo, você usaria o & gt; & gt;operador em vez disso. Por exemplo, o seguinte comando irá anexar informações do sistema ao arquivo que você especificar:

uname -a & gt; & gt;/path/to/ arquivo

Se o arquivo ainda não existe, bash irá criar o arquivo. Caso contrário, bash deixará o conteúdo existente do arquivo sozinho e anexará a saída ao final do arquivo.

Quando você visualiza o conteúdo do arquivo, você verá que os resultados do seu segundo comando foram anexados ao final do arquivo:

Você pode repetir esse processo tantas vezes quanto quiser para manter a adição de saída ao final do arquivo. Arquivo.

Opção dois: saída de impressão normalmente e redirecioná-lo para um arquivo

Você pode não gostar de redirecionar a saída com o & gt;ou & gt; & gt;operadores, pois você não verá a saída do comando no terminal.É para isso que o comando tee é para. O comando tee imprime a entrada que recebe na tela e o salva em um arquivo ao mesmo tempo.

Para canalizar a saída de um comando para T, imprimi-lo para a tela e salvá-lo em um arquivo, use a seguinte sintaxe: comando

|TAD /path/to/ arquivo

Isto irá substituir qualquer coisa no arquivo com a saída do comando, assim como o & gt;operador.

Para canalizar a saída de um comando para tee, imprimir para a tela e salvá-lo em um arquivo, mas anexando-o ao final do arquivo: comando

|T -a /path/to/ arquivo

Isso irá anexar a saída para o final do arquivo, assim como o & gt; & gt;operador.

O shell bash inclui alguns operadores adicionais e avançados que executam funções similares. Eles serão particularmente úteis se você estiver escrevendo scripts bash. Consulte o capítulo Redirecionamento de E / S no Guia Avançado de Script-Bash para obter informações mais detalhadas.