/dev/null
é um arquivo. Um arquivo especial. Um arquivo de dispositivo como / dev / sda ou / dev / tty que fala com uma peça de hardware no seu sistema.
A única diferença com /dev/null
é que nenhum hardware está vinculado a ele. Qualquer dado enviado a ele é descartado silenciosamente. Como o seguinte comando:
echo "Hello World" > /dev/null
que não imprime nada no seu terminal porque você envia a saída de echo
para null, para o vazio, um buraco negro assim.
Mas quando você fez mv test_file /dev/null
, substituiu o arquivo especial /dev/null
por um arquivo de texto normal, mantendo uma cópia do conteúdo de seu test_file
.
Em outras palavras, você perdeu seu /dev/null
.
Agora, o que você precisa fazer é (reconstruir):
sudo rm /dev/null
sudo mknod -m 0666 /dev/null c 1 3
Você deve reconstruí-lo porque muitos scripts, por padrão, enviam a saída para /dev/null
. Se /dev/null
não for mais um buraco negro, mas um arquivo de texto normal, ele poderá crescer, aumentar e preencher seu sistema de arquivos. E tenho certeza que você quer evitar isso.
E muito mais perigoso, muitos scripts assumem que ler /dev/null
não lerá nada; Quebrar essa suposição pode levar a lixo aleatório escrito em arquivos ao redor do seu sistema ... praticamente impossível de consertar.
E lembre-se que o Linux é multi-tarefa: enquanto você está jogando com /dev/null
, muitos processos estão rodando e podem causar estragos mesmo durante alguns segundos "janela de oportunidade".
Se você quiser jogar com /dev/null
, crie uma cópia e experimente:
sudo mknod -m 0666 /tmp/null c 1 3
Criará um arquivo /tmp/null
que funcione exatamente da mesma maneira que /dev/null
, mas que você pode manipular e testar sem qualquer risco para o seu sistema.