Si je le fais: en touch file; mv file /dev/null
tant que root, /dev/null
disparaît. ls -lad /dev/null
résulte en aucun fichier ou répertoire. Cela casse les applications qui dépendent de /dev/null
SSH similaires et peuvent être résolues en faisant mknod /dev/null c 1 3; chmod 666 /dev/null
. Pourquoi le déplacement d'un fichier normal vers ce fichier spécial entraîne-t-il la disparition de /dev/null
?
Pour clarifier, c'était à des fins de test, et je comprends comment fonctionne la mv
commande. Ce que je suis curieux de savoir, c'est pourquoi ls -la /dev/null
avant de le remplacer par un fichier normal, la sortie attendue est affichée, mais ensuite cela montre que cela /dev/null
n'existe pas même si un fichier aurait été créé via la mv
commande d' origine et que la commande de fichier affiche du texte ASCII. Je pense que cela doit être une combinaison du ls
comportement de la commande en conjonction avec devfs
quand un fichier non spécial remplace un fichier caractère / spécial. C'est sur Mac OS X, les comportements peuvent varier sur d'autres OS.
rm
commande.
devfs
est drôle avec les fichiers normaux. Étrange, cependant, vous n'avez pas obtenu d'erreur mv
. Que diriez-vous de cette façon touch testfile; mv testfile /dev
:?
mv
ne peut être atomique que sur le même système de fichiers.
/dev/null
.