O nome /dev/stderr
é realmente válido ao redirecionar para um pipe. O que pode não ser possível é abrir a meta final de /dev/stderr
diretamente. Basta ver:
$ (echo Testing testing > /dev/stderr) |& cat
Testing testing
O pipe criado por |
ou |&
é geralmente um pipe anônimo ; o nome mostrado não corresponde a um objeto no sistema de arquivos . Para uma ilustração você pode tentar algo simples como:
$ ls -la /dev/fd/ |& cat
total 0
dr-x------ 2 alexp alexp 0 Jul 6 18:23 .
dr-xr-xr-x 9 alexp alexp 0 Jul 6 18:23 ..
lrwx------ 1 alexp alexp 64 Jul 6 18:23 0 -> /dev/pts/4
l-wx------ 1 alexp alexp 64 Jul 6 18:23 1 -> pipe:[1058859]
l-wx------ 1 alexp alexp 64 Jul 6 18:23 2 -> pipe:[1058859]
lr-x------ 1 alexp alexp 64 Jul 6 18:23 3 -> /proc/4335/fd
É muito incomum tentar abrir a meta (final) de /dev/stderr
; o nome /dev/stderr
é fornecido na ordem para evitar incomodar-se em descobrir o alvo real.