GNU/Linux >> Tutoriels Linux >  >> Linux

Que sont les fichiers /dev/zero et /dev/null sous Linux

"/dev/zero" et "/dev/null" sont deux fichiers de périphérique factices utiles pour créer des fichiers vides. Mais il y a une nette différence dans ce qu'ils font réellement. Dans cet article, nous verrons la différence entre les deux et où ils peuvent être utilisés.

fichier/dev/zero

Il est utilisé pour créer un fichier sans données mais avec la taille requise (un fichier avec tous les zéros écrits dessus).

Créons un fichier avec /dev/zero :

# dd if=/dev/zero of=/opt/zero.txt bs=2048 count=2048
2048+0 records in
2048+0 records out
4194304 bytes (4.2 MB) copied, 0.150465 s, 27.9 MB/s

Il crée un fichier contenant des zéros continus. Nous pouvons donc dire que /dev/zero est un fichier utilisé pour créer un nouveau fichier avec une taille requise sans aucune signification pour les données.

Vous pouvez également utiliser le fichier /dev/zero en conjonction avec la commande dd pour effacer un disque. Par exemple :

# dd if=/dev/zero of=/dev/sda bs=2K conv=noerror,sync

Un autre fichier qui peut également être utilisé dans ce processus est /dev/null :

/dev/null

Bien que l'envoi de toutes les sorties soit souvent une bonne chose à faire, une autre chose que vous vous retrouverez à faire régulièrement est de rediriger les erreurs (que vous attendez sur certaines commandes) vers un périphérique spécial :/dev/null.

Le genre nul donne la fonctionnalité :c'est quelque part entre une poubelle et un trou noir. Ce fichier est même utile pour créer des fichiers de taille nulle.

Par exemple, si vous voyez que j'ai peu de fichiers et de dossiers dans le répertoire actuel :

# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

Si je redirige la sortie de la commande "ls" vers le fichier "/dev/null", les données de sortie ne peuvent pas être récupérées à nouveau même après avoir lu le fichier null :

# ls > /dev/null
# cat /dev/null
#

Comment recréer /dev/null

Les commandes ci-dessous ont été placées sur une seule ligne et séparées par un point-virgule ';' pour s'exécuter aussi rapidement et avoir le moins d'effet possible sur le système en cours d'exécution.

# rm /dev/null ; mknod -m 0666 /dev/null c 1 3 ;

Execute: yes

Vérifiez que tout est correct et en place :

# ls -al /dev/null

Résumé

Lorsque nous redirigeons la sortie vers /dev/zero, cela fait exactement la même chose que /dev/null :les données disparaissent. Cependant, en pratique, /dev/null est le plus souvent utilisé à cette fin.

Alors, pourquoi avoir cet appareil spécial alors ? Parce que /dev/zero peut également être utilisé pour lire des octets nuls. Sur tous les 256 octets possibles, l'octet nul est le premier :le 00 hexadécimal. Un octet nul est souvent utilisé pour signifier la fin de la commande.


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Quand utiliser /dev/random contre /dev/urandom ?

  3. Linux – Que signifie la lettre « u » dans /dev/urandom ?

  4. Comment mapper les périphériques /dev/sdX et /dev/mapper/mpathY à partir du périphérique /dev/dm-Z

  5. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

tty (/dev/tty ) vs pts (/dev/pts) sous Linux

Qu'est-ce que /dev/null sous Linux

/dev/null sous Linux

DD de /dev/zero à /dev/null...ce qui se passe réellement

Créer un périphérique de bloc virtuel qui écrit dans /dev/null

Différences entre /dev/sda et /dev/sda1