Pagina inicial » como » Como salvar a saída de um comando em um arquivo no Bash (também conhecido como Linux e macOS Terminal)

    Como salvar a saída de um comando em um arquivo no Bash (também conhecido como Linux e macOS Terminal)

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

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

    Opção 1: Redirecionar saída para um arquivo somente

    Para usar o redirecionamento bash, você executa um comando, especifica o > ou >> operador e, em seguida, forneça o caminho de um arquivo para o qual você deseja que a saída seja redirecionada para.

    •  > redireciona a saída de um comando para um arquivo, substituindo o conteúdo existente do arquivo.
    •  >> 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.

    Aqui está um exemplo simples. o ls comando 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 vai imprimi-los na tela - eles serão salvos no arquivo que você especificar.

    ls> / path / to / file

    Você não precisa especificar o caminho para um arquivo existente. Especifique qualquer caminho válido e o bash criará um arquivo nesse local.

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

    cat / path / to / file

    Lembre o >  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 >> operador em vez disso. Por exemplo, o comando a seguir anexará informações do sistema ao arquivo especificado:

    uname -a >> / path / to / file

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

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

    Você pode repetir esse processo quantas vezes desejar para continuar anexando a saída ao final do arquivo.

    Opção 2: imprimir saída normalmente e redirecioná-la para um arquivo

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

    Para canalizar a saída de um comando para camiseta, imprimindo-o em sua tela e salvando-o em um arquivo, use a seguinte sintaxe:

    comando | tee / caminho / para / arquivo

    Isso irá substituir qualquer coisa no arquivo com a saída do comando, assim como o > operador.

    Para canalizar a saída de um comando para camiseta , imprimindo para sua tela e salvando-a em um arquivo, mas anexando-a ao final do arquivo:

    comando | tee -a / caminho / para / arquivo

    Isso anexará a saída ao final do arquivo, assim como o >> operador.

    O shell bash inclui alguns operadores avançados adicionais que executam funções semelhantes. 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 de Script para obter informações mais detalhadas.