/dev/null
é um arquivo especial, do tipo character device. O driver desse dispositivo de caractere ignora tudo o que você tenta gravar no dispositivo e as gravações são sempre bem-sucedidas. Se uma gravação em /dev/null
falhar, significa que você de alguma forma conseguiu remover o /dev/null
adequado e substituí-lo por um arquivo regular. Você pode ter removido acidentalmente /dev/null
; então o próximo … >/dev/null
teria recriado como um arquivo normal.
Execute ls -l /dev/null
e verifique se a linha é parecida com
crw-rw-rw- 1 root root 1, 3 Sep 13 2011 /dev/null
Ele deve começar com crw-rw-rw-
: c
para um dispositivo de caractere e permissões que permitem que todos leiam e escrevam. O arquivo deve ser de propriedade de root, embora não seja muito importante. Os dois números após o proprietário e o grupo identificam o dispositivo ( maior e menor número de dispositivo ). Acima eu mostro os valores no Linux; diferentes variantes unix têm valores diferentes. A data normalmente é a data em que o sistema foi instalado ou a data da última reinicialização e não importa.
Se você precisar recriar o arquivo, alguns sistemas fornecerão um MAKEDEV
de comandos, seja no PATH do root ou em /dev
. Execute cd /dev; ./MAKEDEV std
ou algo assim para recriar os dispositivos básicos padrão, como /dev/null
. Ou crie o dispositivo manualmente, fornecendo os números corretos do dispositivo; no Linux, isso é
mknod -m 666 /dev/null c 1 3