1 votes

Qu'est-ce que '2>&1' et '/dev/null' ?

J'ai parcouru les scripts et j'ai vu que 2>&1 & /dev/null partout. De quoi s'agit-il ? Après avoir cherché sur Google, est-ce différent pour OS X et pour Linux ?

2voto

Il existe trois "flux de fichiers standard" que les processus Unix peuvent utiliser, à savoir stdin , stdout und stderr - stdin lit généralement les données du clavier, et stdout y stderr et vous accédez généralement à la fenêtre de votre terminal. stderr obtient le numéro du descripteur de fichier 2 et stdout obtient le numéro du descripteur de fichier 1 . 2>&1 signifie "rediriger toute la sortie vers stderr au même endroit que stdout". /dev/null est un dispositif de caractères - il rejette simplement tout ce qui lui est écrit.

Si vous ne voulez pas stocker la sortie d'un script quelque part, et que vous ne voulez pas la voir sur votre terminal, vous pouvez rediriger stderr au même endroit que stdout con 2>&1 puis rediriger stdout a /dev/null con > /dev/null

Si vous deviez seulement réorienter stdout con > /dev/null vous verrez toujours des erreurs sur votre terminal.

1voto

mnmnc Points 3873

2>&1 est l'information pour le Shell exécutant le Shell pour rediriger toute la sortie, y compris les erreurs, vers la destination spécifiée comme un fichier ou /dev/null

En /dev dans les systèmes Linux permet au système d'accéder aux périphériques. L'un de ces périphériques est un pseudo-périphérique appelé null. /dev/null est un périphérique vide - un vide en quelque sorte. Il ne fait rien d'autre qu'être un trou dans lequel vous mettez quelque chose et qui disparaît. Si vous copiez /dev/null dans un fichier comme :

cp /dev/null /tmp/foo

le fichier spécifié sera vide.

Des informations détaillées sur la redirection des résultats sont disponibles à l'adresse suivante aquí .

Et aquí est une définition complète de /dev/null :

Sous UNIX, il s'agit d'un fichier virtuel dans lequel on peut écrire. Les données écrites écrites dans ce fichier sont rejetées. Il est similaire à l'appel de fichier NUL sur les machines Windows. Point clé : Lors de l'enracinement d'une machine, les intrus vont redirigeront souvent la journalisation vers /dev/null Par exemple, la commande ln -s /dev/null .bash_history permet au système d'arrêter la journalisation des commandes bash . Culture : Dans la langue vernaculaire, signifie à peu près la même chose que trou noir. Utilisation typique : si vous n'aimez pas ce que j'ai à dire, veuillez adresser vos commentaires à /dev/null.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X