Différence entre / dev / null et / dev / zero


27

Lorsque vous essayez de rediriger vers /dev/nullet /dev/zero, la sortie vers laquelle il est rejeté. Il semble à la fois /dev/nullet /dev/zeroaccepter et abandonner toutes les entrées. Alors, quelle est la différence entre /dev/nullet /dev/zero?


6
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero* s'enfuit *
joeytwiddle

Réponses:


52

Oui, les deux acceptent et suppriment toutes les entrées, mais leur sortie n'est pas la même:

  • /dev/nullne produit aucune sortie .
  • /dev/zeroproduit un flux continu d'octets NULL (valeur nulle) .

Vous pouvez voir la différence en exécutant cat /dev/nullet cat /dev/zero.

  • Essayez cat /dev/null > fileet vous trouverez un vide file.

  • Essayez maintenant cat /dev/zero > file, tout en regardant la taille du fichier ( watch -n 1 du -h file) augmenter continuellement. En effet, la lecture de /dev/zerodonne un flux infini de caractères \0(nuls).

Utilisez ddpour visualiser la différence de manière plus appropriée:

$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s

$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s

/dev/zero est utilisé pour créer des fichiers fictifs ou des échanges.

Visitez également:



2
À noter: mmapping /dev/zeroavec MAP_PRIVATEest le moyen "portable" d'obtenir un mappage de mémoire anonyme (en l'absence d'extensions comme MAP_ANON).
nneonneo

6
Peut-être pas évident pour le lecteur occasionnel est de savoir comment /dev/null ne produit aucune sortie: Il signale EOF immédiatement.
Peter - Rétablir Monica le

Existe-t-il un appareil qui donne tout le monde?
Aaron Franke
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.