Você pode gravar arquivos ou outros fluxos de entrada em /dev/nulldiretórios, mas não em. Se você tentar mover um diretório para /dev/nullele, reportará um erro, pois /dev/nullnão é um diretório, mas um arquivo.
No entanto, desde que você deseja experimentar /dev/null, primeiro é sugerido que você conheça as consequências de mover um arquivo para substituir /dev/nulle como se recuperar dessa situação:
Como sugerido por @Rmano em esta resposta para essa pergunta, a fim de experimentar /dev/nulldevemos sim criar uma cópia do mesmo e, em seguida, fazer a nossa experimentação. Então, vamos criar /tmp/nulle usá-lo para nossos propósitos de experimentação:
sudo mknod -m 0666 /tmp/null c 1 3
A partir de agora, /tmp/nullé nosso /dev/nullpara todos os fins:
Vamos criar um test_filee um test_dirdentro de um diretório chamado ask_ubuntu.
$ mkdir ask_ubuntu
$ cd ask_ubuntu
$ touch test_file
$ mkdir test_dir
$ echo "Let us test if we can recover our test_file." > test_file
A seguir, mostra o conteúdo do ask_ubuntudiretório:
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:10 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
-rw-r--r-- 1 aditya aditya 0 Mar 18 17:10 test_file
Agora tente mover nosso test_filepara /tmp/nulle veja o conteúdo de ask_ubuntu:
$ sudo mv test_file /tmp/null # This succeeds
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:12 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
O comando foi bem-sucedido e test_filenão está mais disponível. Agora tente avançar test_dirpara o /tmp/nullque não for bem-sucedido:
$ sudo mv test_dir/ /tmp/null
mv: cannot overwrite non-directory ‘/tmp/null’ with directory ‘test_dir/’
test_dirainda está presente dentro ask_ubuntu:
$ ls -la
total 12
drwxr-xr-x 3 aditya aditya 4096 Mar 18 17:12 .
drwxr-xr-x 4 aditya aditya 4096 Mar 18 17:10 ..
drwxr-xr-x 2 aditya aditya 4096 Mar 18 17:10 test_dir
Agora, vamos descobrir se podemos recuperar nosso test_filede /tmp/null:
$ cat /tmp/null
Let us test if we can recover our test_file.
Portanto, ele ainda está lá e o /tmp/nullarquivo especial foi substituído e se tornou como qualquer outro arquivo normal. Podemos recuperar nosso arquivo copiando /tmp/nullcomo qualquer outro arquivo:
$ cp /tmp/null our_test_file
$ cat our_test_file
Let us test if we can recover our test_file.
Arquivo recuperado.
Nota:
Se você não criou /tmp/nulle tentou esses comandos diretamente usando /dev/null; certifique-se de recuperar o arquivo (se necessário) executando cp /dev/null our_test_file; e restaure /dev/nullpara os propósitos existentes em nosso sistema executando os seguintes comandos, conforme fornecidos na pergunta vinculada o mais rápido possível:
$ sudo rm /dev/null
$ sudo mknod /dev/null c 1 3
$ sudo chmod 666 /dev/null
Conclusão:
Portanto, é impossível mover um diretório para /dev/nulle, portanto, não há como recuperar o diretório a partir daí.
No que diz respeito aos arquivos, se você mover diretamente os arquivos /dev/null, ainda poderá recuperá-lo conforme demonstrado acima. No entanto, existem duas exceções:
Durante o período em que você executa , sudo mv test_file /dev/nulle cp /dev/null our_test_file, se algum script raiz no sistema o substituir, executando echo "Whatever text the root script wants to send to /dev/null" > /dev/null(ou outros comandos semelhantes). Então não temos uma maneira fácil de recuperar nosso arquivo.
Se você reiniciar o sistema entre a execução desses dois comandos. /dev/nullé recriado na inicialização, para que nosso arquivo se perca quando desligamos o computador.
Mas se você deseja recuperar fluxos de entrada como esse echo "Stream this line to /dev/null" > /dev/null, não é possível recuperá-lo, pois /dev/nullé um arquivo especial para descartar arquivos e fluxos de entrada indesejados e, como o artigo da Wikipedia menciona, ele não fornece dados para um processo que os lê.
Referência: Artigo da Wikipedia sobre/dev/null