GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rediriger la sortie vers /dev/null sous Linux

Sous Linux, les programmes sont très couramment accessibles à l'aide de la ligne de commande et la sortie, en tant que telle, est affichée sur l'écran du terminal. La sortie se compose de deux parties :STDOUT (Sortie standard ), qui contient des journaux d'informations et des messages de réussite, et STDERR (Erreur standard ), qui contient des messages d'erreur.

Souvent, la sortie contient beaucoup d'informations qui ne sont pas pertinentes et qui utilisent inutilement les ressources système. Dans le cas de scripts d'automatisation complexes en particulier, où de nombreux programmes sont exécutés les uns après les autres, le journal affiché est énorme.

Dans de tels cas, nous pouvons utiliser le pseudo-dispositif fichier '/dev/null ' pour rediriger la sortie. Lorsque la sortie est redirigée vers /dev/null , il est immédiatement supprimé et, par conséquent, aucune utilisation des ressources n'a lieu.

Voyons comment rediriger la sortie vers /dev/null sous Linux.

Prenons un exemple de la commande mv essayant de déplacer deux fichiers vers un répertoire particulier, où un fichier est déplacé avec succès (affiche STDOUT ) et l'autre donne une erreur lors du déplacement (affiche STDERR ).

$ mv -v tmp.c /etc/apt/sources.list /tmp

Remarque :Le '-v' argument de mv affiche le journal de réussite lorsqu'un fichier est déplacé. Sans le drapeau, rien n'est imprimé sur STDOUT .

Maintenant, pour rediriger uniquement le STDOUT à /dev/null , c'est-à-dire que pour supprimer la sortie standard, utilisez ce qui suit :

$ mv -v tmp.c /etc/apt/sources.list /tmp 1>/dev/null

Que signifie "1>/dev/null" ?

Ici '1' indique STDOUT , qui est un entier standard attribué par Linux pour la même chose. L'opérateur '>' , appelé opérateur de redirection, écrit des données dans un fichier. Le fichier spécifié dans ce cas est /dev/null . Par conséquent, les données sont finalement supprimées.

Si un autre fichier a été donné à la place de /dev/null , la sortie standard aurait été écrite dans ce fichier.

De même, pour rediriger uniquement le STDERR à /dev/null , utilisez l'entier '2' au lieu de '1' . L'entier '2' signifie erreur standard.

$ mv -v tmp.c /etc/apt/sources.list /tmp 2>/dev/null

Comme vous pouvez le voir, l'erreur standard n'est pas affichée sur le terminal maintenant car elle est supprimée dans /dev/null .

Enfin, pour supprimer à la fois STDOUT et STDERR en même temps, utilisez ce qui suit :

$ mv -v tmp.c /etc/apt/sources.list /tmp &>/dev/null

L'esperluette ('&') indique que la sortie standard et l'erreur standard doivent être redirigées vers /dev/null et jeté. Par conséquent, dans la dernière capture d'écran, nous ne voyons aucune sortie imprimée à l'écran.

Conclusion

Dans cet article, nous avons vu comment rediriger la sortie vers /dev/null . La même chose peut être utilisée dans l'une ou l'autre des commandes ou dans des scripts Bash complexes qui génèrent une grande quantité de journaux. Dans le cas où le script nécessite un débogage ou doit être testé ; dans de tels cas, le journal est nécessaire pour visualiser et analyser correctement les erreurs.

Cependant, dans les cas où la sortie est déjà connue et anticipée, elle peut être supprimée avec /dev/null . Si vous avez des questions ou des commentaires, faites-le nous savoir dans les commentaires ci-dessous !


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

  2. Comment encoder en base64 /dev/random ou /dev/urandom ?

  3. Comment rediriger /dev/urandom vers la sortie audio Linux ?

  4. Comment créer /dev/null ?

  5. Comment Linux utilise /dev/tty et /dev/tty0

Qu'est-ce que '/dev/null 2&1' sous Linux

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

/dev/null sous Linux

Comment rediriger la sortie d'une application en arrière-plan vers /dev/null

Rediriger stderr vers /dev/null

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