Operadores de redirecionamento são fundamentos essenciais no mundo *NIX, tanto que quase todo shell script mais avançado usa e abusa desse recurso. Para descobrir o que cada um dos operadores faz, você pode dar uma olhadinha neste artigo.
Quando vai se testar o operador >, você pode facilmente verificar que ele não redireciona mensagens de erro. Por exemplo:
(supondo que arquivoqnaoexiste não existe)
$ cat arquivoqnaoexiste > aaa
cat: arquivoqnaoexiste: file not found
$ cat aaa
O operador 2> tem esta função: redirecionar somente as mensagens de erro para um arquivo. Vejamos o mesmo exemplo acima:
$ cat arquivoqnaoexiste 2> aaa
$ cat aaa
cat: arquivoqnaoexiste: file not found
Você pode usar este operador em conjunto com o > ou >>, veja como:
$ comando > out 2> err
NOTA: lógico que "out" e "err" podem variar
Linguagens como C e Shell-script podem facilmente escrever mensagens de erro que são redirecionadas apenas com 2>. Em C, basta escrever na stream "stderr". Veja como:
[3] Comentário enviado por pop_lamen em 18/11/2004 - 14:48h
Bom o artigo, mas faltou muita coisa....
Por exemplo faltou cobrir o redirecionamento de fluxo para devices,
exemplo:
echo fuck > /dev/null
dentre outors.
Mas mesmo assim ta valendo, t+!
[4] Comentário enviado por jllucca em 19/11/2004 - 13:31h
Olá,
cara o artigo ta excelente. Só discordo do "2>" ser um operador. No mundo *nux, nós temos normalmente três arquivos abertos(não tenho certeza da ordem stdin e stdout): 0(stdin), 1(stdout), 2(stderr). Assim, quando fazemos "2>algo" estamos fazendo o dispositivo "/dev/stderr" enviar suas mensagens para algo. Essa parte teria sido uma ótima ancora pra voce falar de redirecionamento para dispositivos como o pop_lamen já comentou. Assim, voce, ao inves de stderr, poderia usar:
[7] Comentário enviado por Stuani255 em 27/05/2016 - 11:30h
Alguem pode dar um exemplo usando redirecionamento criando um arquivo txt? Estou começando agora a aprender shell script e pra mim esses comandos são meio vagos.