Hier, j'ai lu ce commentaire SO qui dit que dans le shell (au moins bash
) >&-
"a le même résultat que" >/dev/null
.
Ce commentaire fait en réalité référence au guide ABS comme source d'informations. Mais cette source dit que la >&-
syntaxe "ferme les descripteurs de fichier".
Il n’est pas clair pour moi si les deux actions de fermeture d’un descripteur de fichier et de sa redirection vers le périphérique null sont totalement équivalentes. Donc ma question est: sont-ils?
En apparence, fermer un descripteur revient à fermer une porte, mais le rediriger vers un périphérique nul ouvre la porte aux limbes! Les deux ne me semblent pas exactement pareils parce que si je vois une porte fermée, je ne tenterai rien, mais si je vois une porte ouverte, je supposerai que je peux le faire.
En d’autres termes, je me suis toujours demandé si cela >/dev/null
signifiait cat mybigfile >/dev/null
traiter tous les octets du fichier et l’écrire dans /dev/null
lequel l’oublie. D'un autre côté, si le shell rencontre un descripteur de fichier fermé, j'ai tendance à penser (mais je ne suis pas sûr) qu'il n'écrira simplement rien, bien que la question de savoir s'il litcat
toujours chaque octet reste posée .
Ce commentaire dit >&-
et >/dev/null
" devrait " être le même, mais ce n'est pas une réponse si retentissante pour moi. J'aimerais avoir une réponse plus autoritaire avec une référence au standard ou à la source ou pas ...