But de / dev / zero?

49

J'ai essayé de le faire cat /dev/zeroet cela ne semblait rien faire. J'ai googlé /dev/zero, et il est écrit qu'il s'agit en fait d'un fichier vierge de taille infinie. Est-ce que l' catimpression d'un nombre infini de caractères inexistants? Comment cela marche-t-il? Comment fournit-il des données infinies s'il s'agit de 0 octet? Quelles sont les utilisations de ce fichier, si l’on peut simplement créer un fichier vierge?

tkbx
la source
11
Courez cat -v /dev/zerovoir ce qu'il fait. Voir Effacer l'espace inutilisé avec des zéros (ext3, ext4) dans un but commun.
Manatwork
Il existe également / dev / null qui se comporte comme un fichier vide si vous voulez le lire et comme un trou noir si vous y écrivez.
Jofel
@ jofel mais vous ne pouvez pas utiliser / dev / null pour une valeur infinie à 0 bits, n'est-ce pas? cat foo > /dev/nullet cat foo > /dev/zerosont les mêmes, mais cat /dev/nullet cat /dev/zerone sont pas les mêmes, correct?
tkbx
@tkbx oui, correct. /dev/nullretourne immédiatement EOF si un programme veut le lire. /dev/zerorenvoie infiniment 0 octets.
Jofel

Réponses:

53

/dev/zeroest un fichier spécial (dans ce cas, un pseudo-périphérique) qui fournit un flux infini de caractères nuls (donc hex 0x00)? C'est pourquoi vous catn'émettez rien (mais essayez de l'exécuter od(vidage octal)).

'fichier vide de taille infinie' n'est pas correct à 100%: ce n'est pas un fichier normal, mais un fichier spécial (plus comme un 'flux' ou un générateur). Vous pouvez en lire autant que vous voulez, par exemple avec dd(comme dd if=/dev/zero of=yourfile count=1024 bs=1024).

Ce n'est pas vraiment un fichier vierge , ni utilisé pour créer des fichiers vierges: il est utilisé pour créer des fichiers ou des pages de mémoire remplies avec des zéros seulement. Vous pouvez également écrire dessus, le faisant fonctionner comme un gouffre (son frère plus populaire /dev/nullest plus communément utilisé pour cela).

Konerak
la source
Pourquoi quelqu'un voudrait-il remplir un espace vide?
Tkbx
5
Par exemple, pour effacer ce qui était là avant. Ou lors de la transmission.
Konerak
4
Je n'ai pas lu le srmmanuel ni la source, mais la plupart des 'gommes sécurisées' préfèrent écrire des données (pseudo-) aléatoires au lieu de mettre à zéro un disque, puisqu'un seul passage de la mise à zéro n'est pas suffisamment sécurisé (certaines agences à trois lettres). pouvez toujours déduire le contenu original d'un disque dur mis à zéro, car les bits individuels ne sont pas 100% véritablement 1 ou 0, mais simplement "la plupart du temps 1" ou "la plupart du temps 0". Comparez-le à un levier que vous pouvez mettre "complètement à gauche" "ou" tout à fait à droite ", mais en général, il suffit d'un basculement de l'autre côté."
Konerak
11
@tkbx essayant sur ddune partition, vous souhaiterez peut-être remplir tout l'espace vide à 0 plutôt que de manière aléatoire pour obtenir un fichier compressé plus petit ultérieurement.
Neurino
1
@ Konerak Je suis assez méfiant à ce sujet. Je l'ai entendu dire partout et je n'ai jamais vu la preuve que cela soit possible sur un disque dur à distance (fabriqué au moins ces 10 dernières années).
Rob