Puede escribir archivos u otras secuencias de entrada en /dev/nulldirectorios, pero no en ellos. Si intenta mover un directorio a /dev/nulleste, se informará un error, ya /dev/nullque no es un directorio sino un archivo.
Sin embargo, dado que desea experimentar /dev/null, primero se le sugiere conocer las consecuencias de mover un archivo para sobrescribir /dev/nully cómo recuperarse de esa situación:
Según lo sugerido por @Rmano en esta respuesta a esa pregunta, para experimentar con /dev/nullnosotros deberíamos crear una copia y luego hacer nuestra experimentación. Entonces, creémoslo /tmp/nully usémoslo para nuestros propósitos de experimentación:
sudo mknod -m 0666 /tmp/null c 1 3
Ahora en adelante, /tmp/nulles nuestro /dev/nullpara todos los propósitos:
Vamos a crear ay test_fileun test_dirdentro de un directorio llamado 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 continuación se muestran los contenidos del ask_ubuntudirectorio:
$ 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
Ahora trata de mover nuestro test_filea /tmp/nully ver los contenidos 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
El comando tiene éxito y test_fileya no está disponible. Ahora intenta pasar test_dira lo /tmp/nullque no tiene éxito:
$ sudo mv test_dir/ /tmp/null
mv: cannot overwrite non-directory ‘/tmp/null’ with directory ‘test_dir/’
test_dirsigue presente en el interior 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
Ahora, vamos a averiguar si podemos recuperar nuestra test_filepartir de /tmp/null:
$ cat /tmp/null
Let us test if we can recover our test_file.
Por lo tanto, todavía está allí y /tmp/nullse sobrescribió un archivo especial y se convirtió en cualquier otro archivo normal. Podemos recuperar nuestro archivo copiando /tmp/nullcomo cualquier otro archivo:
$ cp /tmp/null our_test_file
$ cat our_test_file
Let us test if we can recover our test_file.
Archivo recuperado.
Nota:
Si no creó /tmp/nully probó esos comandos directamente usando /dev/null; asegúrese de recuperar el archivo (si es necesario) ejecutando cp /dev/null our_test_file; y restaurar /dev/nullpara los fines que existen en nuestro sistema ejecutando los siguientes comandos como se indica en la pregunta vinculada lo antes posible:
$ sudo rm /dev/null
$ sudo mknod /dev/null c 1 3
$ sudo chmod 666 /dev/null
Conclusión:
Por lo tanto, es imposible mover un directorio /dev/nully, por lo tanto, no se trata de recuperar el directorio desde allí.
En lo que respecta a los archivos, si mueve los archivos directamente a /dev/null, aún puede recuperarlos como se demostró anteriormente. Sin embargo, hay dos excepciones:
Durante el período que ejecuta sudo mv test_file /dev/nully cp /dev/null our_test_file, si algún script raíz en el sistema lo sobrescribe ejecutando echo "Whatever text the root script wants to send to /dev/null" > /dev/null(u otros comandos similares). Entonces no tenemos ninguna manera fácil de recuperar nuestro archivo.
Si reinicia el sistema entre la ejecución de esos dos comandos. /dev/nullse vuelve a crear en el arranque, por lo que nuestro archivo se pierde cuando apagamos la computadora.
Pero si desea recuperar flujos de entrada como echo "Stream this line to /dev/null" > /dev/null, no puede recuperarlo ya que /dev/nulles un archivo especial para deshacerse de archivos no deseados y flujos de entrada y, como menciona el artículo de Wikipedia, no proporciona ningún dato a un proceso que lo lea.
Referencia: artículo de Wikipedia sobre/dev/null