Je lis un fichier de 550 Mo dans / dev / null et je reçois
dd: writing '/dev/null': No space left on device
J'ai été surpris. Je pensais que / dev / null est un trou noir où vous pouvez envoyer autant que vous le souhaitez (car c'est un fs virtuel).
Oui, mon disque est presque plein lorsque j'obtiens cette erreur. Que puis-je faire d'autre que supprimer le contenu du disque?
ls -l /dev/null
-rw-r--r-- 1 root root 0 July 7 21:58 /dev/null
Au lieu de
crw-rw-rw- 1 root root 1, 3 July 7 02:58 /dev/null
Commande que j'utilise:
time sh -c "dd if=$filename of=/dev/null"
ls -l /dev/null
/dev/null
ne devrait jamais déclencher cette erreur, car il ne fait pas tout écrire partout. Obtenez-vous le même effet sanstime
? Veuillez poster la sortie destrace dd if=$filename of=/dev/null
(faites-le avec un fichier ne contenant aucune information confidentielle ), ou destrace dd if=$filename of=/dev/null
sitime
est nécessaire pour déclencher l'erreur.Réponses:
/dev/null
est un fichier spécial, de type périphérique de caractères. Le pilote de ce périphérique de caractères ignore tout ce que vous essayez d'écrire sur le périphérique et les écritures réussissent toujours. Si une écriture/dev/null
échoue, cela signifie que vous avez réussi à supprimer le bon/dev/null
et à le remplacer par un fichier normal. Vous pourriez avoir accidentellement supprimé/dev/null
; alors le suivant l'… >/dev/null
aurait recréé comme un fichier normal.Exécutez
ls -l /dev/null
et vérifiez que la ligne ressemble à quelque choseIl doit commencer par
crw-rw-rw-
:c
pour un périphérique de caractères et des autorisations qui permettent à tout le monde de lire et d'écrire. Le fichier doit appartenir à root, bien qu'il ne soit pas très important. Les deux chiffres après le propriétaire et le groupe identifient l'appareil ( numéro d'appareil majeur et mineur ). Ci-dessus, je montre les valeurs sous Linux; différentes variantes Unix ont des valeurs différentes. La date est généralement la date d'installation du système ou la date du dernier redémarrage et n'a pas d'importance.Si vous devez recréer le fichier, certains systèmes fournissent des
MAKEDEV
commandes, soit dans le CHEMIN de la racine, soit dans/dev
. Exécutezcd /dev; ./MAKEDEV std
ou quelque chose comme ça pour recréer les périphériques de base standard tels que/dev/null
. Ou créez le périphérique manuellement, en fournissant les numéros de périphérique corrects; sous Linux, c'estla source
/dev/null
dans certaines circonstances, peut-être quelque chose commetmp_file=$(mktemp); … … … if [ "$mode" = "quiet" ]; then tmp_file=/dev/null; done; … … … rm "$tmp_file"