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 ?
Réponses
Trop de publicités?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.
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.