Se eu fizer: touch file; mv file /dev/nullcomo raiz, /dev/nulldesaparece. ls -lad /dev/nullresulta em nenhum arquivo ou diretório. Isso interrompe aplicativos que dependem do /dev/nullSSH e podem ser resolvidos fazendo isso mknod /dev/null c 1 3; chmod 666 /dev/null. Por que mover um arquivo regular para esse arquivo especial resulta no desaparecimento de /dev/null?
Para esclarecer, isso foi feito para fins de teste e eu entendo como o mvcomando funciona. O que me interessa é o motivo pelo qual, ls -la /dev/nullantes de substituí-lo por um arquivo regular, mostra a saída esperada, mas depois mostra que /dev/nullnão existe, mesmo que um arquivo tenha sido supostamente criado por meio do mvcomando original e o comando file mostre Texto ASCII. Eu acho que isso deve ser uma combinação do lscomportamento do comando em conjunto com devfsquando um arquivo não especial substitui um caractere / arquivo especial. Isso ocorre no Mac OS X, os comportamentos podem variar em outros sistemas operacionais.
rmcomando
devfsé engraçado com arquivos normais. Estranho, você não recebeu um erro mv. Que tal assim touch testfile; mv testfile /dev:?
mvsó pode ser atômico no mesmo sistema de arquivos.
/dev/null.