Existem dois fluxos de saída conectados a cada processo em um sistema Unix: saída padrão (stdout, descritor de arquivo 1) e erro padrão (stderr, descritor de arquivo) 2). Estes podem ser redirecionados independentemente um do outro. Entrada padrão usa o descritor de arquivo 0.
- Para redirecionar a saída padrão para o arquivo
file
, use>file
ou o mais explícito1>file
. Substituafile
por/dev/null
para descartar os dados. - Para redirecionar o erro padrão para o arquivo
file
, use2>file
. - Para redirecionar o erro padrão para onde a saída padrão estiver indo, use
2>&1
. - Para redirecionar a saída padrão para onde quer que o erro padrão esteja acontecendo, use
1>&2
.
Não há conceito "o resultado final" de um fluxo ou processo. Suponho que tudo o que é enviado para saída padrão pode ser tomado como o "resultado" de um processo, a menos que ele também envie dados para algum arquivo que ele abrir sozinho ou tenha outros efeitos colaterais (como desvincular um arquivo de um diretório, no caso de rm
ou manipulando várias conexões de rede, no caso de sshd
). Um processo também retorna um status de saída (zero para "sucesso" e diferente de zero para "falha") que pode ser visto como "o resultado" desse processo, mas isso não está necessariamente relacionado aos fluxos de saída do processo. / p>
Os fluxos também podem ser redirecionados no modo de acréscimo , o que significa que, se o redirecionamento for para um arquivo, esse arquivo não será inicialmente truncado e todos os dados no fluxo serão anexados ao final do arquivo. Um faz isso usando >>file
em vez de >file
.
Na nota da pergunta, o comando
find / -type f -name php.ini 2>/dev/null
é dado. Isso redireciona (descarta) o erro padrão somente . O fluxo de saída padrão não é redirecionado e, portanto, estará visível, na sua totalidade, no console ou no terminal. Se fosse uma parte intermediária de um pipeline, o fluxo de saída padrão seria alimentado na entrada padrão do próximo comando no pipeline.
Então, para concluir, eu diria que existem dois (não quatro) fluxos de saída. Estes podem ser redirecionados independentemente de várias maneiras, o que inclui descartar seu conteúdo.