O dispositivo especial /dev/stderr é específico do sistema, enquanto o descritor de arquivo 2 (não o dispositivo especial /proc/self/fd/2 ) é portátil. Se você quiser escrever código não portátil, esses dispositivos especiais são um bom lugar para começar.
Existem alguns sistemas com /dev/stderr : Linux, é claro, e OSX . Mas o OSX não tem /proc filesystem e seu /dev/stderr é um link para /dev/fd/2 .
Leitura adicional:
- Portabilidade de “> / dev / stdout ”
- Que método devo usar para escrever mensagens de erro para 'stderr' usando 'printf' em um script bash?
- patches / awk-dev-stderr (autoconf-patches)
- Redirecionar stderr e stdout em um script de Bash
- Capítulo 20. Redirecionamento de I / O (Guia Avançado de Roteiro de Bash)