Vous pouvez écrire des fichiers ou d'autres flux d'entrée dans /dev/null
mais pas dans les répertoires. Si vous essayez de déplacer un répertoire vers /dev/null
, une erreur serait signalée car /dev/null
n'est pas un répertoire mais un fichier.
Cependant, puisque vous voulez tester /dev/null
, il vous est tout d’abord suggéré de connaître les conséquences du déplacement d’un fichier pour écraser /dev/null
et de savoir comment récupérer cette situation:
Comme suggéré par @Rmano dans cette réponse à cette question, afin de tester /dev/null
, nous devrions plutôt en créer une copie et ensuite faire notre expérimentation. Nous allons donc créer /tmp/null
et l'utiliser pour nos besoins d'expérimentation:
sudo mknod -m 0666 /tmp/null c 1 3
Maintenant, /tmp/null
est notre /dev/null
pour tous les besoins:
Créons un test_file
et un test_dir
dans un répertoire appelé 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
Ce qui suit montre le contenu du répertoire ask_ubuntu
:
$ 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
Maintenant, essayez de déplacer nos test_file
vers /tmp/null
et de voir le contenu 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
La commande réussit et test_file
n'est plus disponible. Maintenant, essayez de déplacer test_dir
à /tmp/null
qui n'aboutit pas:
$ sudo mv test_dir/ /tmp/null
mv: cannot overwrite non-directory ‘/tmp/null’ with directory ‘test_dir/’
test_dir
est toujours présent dans 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
Maintenant, voyons si nous pouvons récupérer notre test_file
de /tmp/null
:
$ cat /tmp/null
Let us test if we can recover our test_file.
Donc, il est toujours là et /tmp/null
qui était un fichier spécial a été écrasé et il est devenu comme tout autre fichier normal. Nous pouvons récupérer notre fichier en copiant /tmp/null
comme tout autre fichier:
$ cp /tmp/null our_test_file
$ cat our_test_file
Let us test if we can recover our test_file.
Fichier récupéré.
Note:
Si vous n'avez pas créé /tmp/null
et essayé ces commandes directement avec /dev/null
; assurez-vous de récupérer le fichier (si nécessaire) en exécutant cp /dev/null our_test_file
; et restaurez /dev/null
aux fins pour lesquelles il existe sur notre système en exécutant les commandes suivantes telles qu'elles sont indiquées dans la question liée dès que possible:
$ sudo rm /dev/null
$ sudo mknod /dev/null c 1 3
$ sudo chmod 666 /dev/null
Conclusion:
-
Il est donc impossible de déplacer un répertoire vers /dev/null
et il n'est donc pas question de récupérer le répertoire à partir de là.
-
En ce qui concerne les fichiers, si vous déplacez directement les fichiers vers /dev/null
, vous pouvez toujours les récupérer comme indiqué ci-dessus. Cependant, il existe deux exceptions:
-
Pendant la période, vous exécutez sudo mv test_file /dev/null
et cp /dev/null our_test_file
si un script racine du système le remplace en exécutant echo "Whatever text the root script wants to send to /dev/null" > /dev/null
(ou d'autres commandes similaires). Ensuite, nous n’avons aucun moyen facile de récupérer notre fichier.
-
Si vous redémarrez le système entre ces deux commandes. /dev/null
est recréé au démarrage, notre fichier est donc perdu lorsque nous éteignons l'ordinateur.
-
Mais si vous souhaitez récupérer des flux d’entrée tels que echo "Stream this line to /dev/null" > /dev/null
, vous ne pouvez pas récupérer ces fichiers car /dev/null
est un fichier spécial pour éliminer les fichiers indésirables et les flux d’entrée. fournir des données à un processus qui en lit le contenu.
Référence: Article Wikipedia sur /dev/null