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