Os erros que a maioria dos programas imprime são enviados para o fluxo stderr
(Erro Padrão), enquanto a saída do programa é enviada para o fluxo stdout
(Saída Padrão).
Cada fluxo tem um descritor de arquivo , que você pode considerar como um número que identifica um fluxo. stderr
tem o descritor de arquivo 2 e o valor de stdout
é 1.
- Quando você executa
command > file.txt
isto é equivalente a correr,
command 1> file.txt
que tem um significado - redireciona o conteúdo de stdout
para o arquivo file.txt
.
- No entanto, se você quiser redirecionar o conteúdo de
stderr
, escreverá:
command 2> file.txt
- E para redirecionar os
stdout
estderr
, você pode escrever:
command &> file.txt
OR
command > file.txt 2>&1
Você pode interpretar o segundo comando como - Envie a saída de command
para file.txt
e também mescle stderr
com stdout
.
- Da mesma forma, para enviar erros para
less
oumore
, primeiro mesclestderr
parastdout
e, em seguida, envie-o para o programa correspoding.
command 2>&1 | less