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
stdoutestderr, 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
lessoumore, primeiro mesclestderrparastdoute, em seguida, envie-o para o programa correspoding.
command 2>&1 | less