Comprendre l'utilité de /dev/null
Introduction
Quel utilisateur d'UNIX/Linux n'a jamais vu dans un système ou dans une documentation une ligne de commande avec un mystérieux /dev/null ? Malgré son rôle et son utilisation d'une facilité à faire passer mamie pour un développeur système, il n'est pas toujours évident de comprendre ce qu'il représente.
Qu'est-ce que c'est ?
On peut remarquer que /dev/null se trouve dans le dossier des périphériques /dev. Il représente enfaite un périphérique symbolique représentant rien ! Le vide, le néant, l'apocalypse, un trou noir ou encore le cerveau de Paris Hilton. La grande question est : à quoi ça sert "rien" ?
Utilité
Le principale application est la redirection de flux. Supposons que vous vouliez effectuer une recherche à partir du dossier racine / sans les droits de super-utilisateur. Lors de cette recherche, vous allez être confronté à une pluie d'erreurs qui vous annonce que vous n'avez pas le droit de lire plusieurs dossiers qui ne vous appartiennent pas. Ces erreurs ne vous intéressent pas et complexifient le résultat. Par exemple, si nous recherchons le dossier init.d, on va se retrouver avec une sortie du genre :
$ find / -name 'init.d' -print
...
find: `/etc/cups/ssl': Permission non accordée
/etc/init.d
find: `/home/lost+found': Permission non accordée
...Dans cette sortie, la quantité d'erreurs représentée par ... est non négligeable comme le montre la première capture d'écran. La seule façon d'avoir le seul résultat qui nous intéresse en négligant ces erreurs est de rediriger le flux d'erreur (la sortie standard d'erreur stderr de code 2) vers... rien ! Pour ce faire, nous allons utiliser l'opérateur de redirection > :
$ find / -name 'init.d' -print 2>/dev/null
/etc/init.d

Les erreurs ayant été aspirées par une force métaphysique, nous avons enfin un résultat intéressant.

Commentaires
J'adore l'expression
J'adore l'expression "faire passer mamie pour une développeur système" ! :D