Como redirecionar a saída padrão e de erro no Linux para um arquivo

image_pdfimage_print

Bash e outros shells modernos proveem funcionalidades de redirecionamento de I/O (input/output) . Há 3 tipos padrões de arquivos (standard streams):

[a] stdin – Utilizado para obter a entrada do teclado (keyboard). É uma das entradas de dados para o programa.

[b] stdout – Utilizado como saída, para escrever informações, em geral, na tela

stderr – Utilizado para escrever as mensagens de erro ou conhecido como saída de erro.

Entendendo os números das I/O

O padrão Unix, seguido pelo Linux, de numeração das saídas de I/O é:

Handle Name Description
0 stdin Standard input
1 stdout Standard output
2 stderr Standard error

Redirecting the standard error stream to a file

The following will redirect program error message to a file called error.log:
$ program-name 2> error.log
$ command1 2> error.log

Redirecionando a saída de erro (stderr) para um arquivo

Use a seguinte sintaxe:
$ command-name &>file

ou

$ command > file-name 2>&1
Um exemplo prático:
# find /usr/home -name .profile 2>&1 | more

Redirecionando stderr para stdout

Use o comando como abaixo se segue:
$ command-name 2>&1

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!