Si vous voulez dire le nu -
à la fin du tar
commande, c'est courant sur de nombreuses commandes qui veulent utiliser un fichier.
Il vous permet de spécifier une entrée ou une sortie standard plutôt qu'un réel nom de fichier.
C'est le cas pour votre premier et troisième exemple. Par exemple, le cdrecord
la commande prend une entrée standard (le flux d'image ISO produit par mkisofs
) et en l'écrivant directement dans /dev/dvdrw
.
Avec le cd
commande, chaque fois que vous changez de répertoire, il stocke le répertoire d'où vous venez. Si vous faites cd
avec le spécial -
"nom du répertoire", il utilise ce répertoire mémorisé au lieu d'un vrai. Vous pouvez facilement basculer entre deux répertoires assez rapidement en utilisant cela.
D'autres commandes peuvent traiter -
comme un différent valeur spéciale.
Ce n'est pas de la magie. Certaines commandes interprètent -
en tant qu'utilisateur souhaitant lire depuis stdin ou écrire sur stdout ; il n'y a rien de spécial à ce sujet pour le shell.
-
signifie exactement ce que chaque commande veut qu'elle signifie. Il existe plusieurs conventions courantes, et vous en avez vu des exemples pour la plupart dans d'autres réponses, mais aucune d'entre elles n'est universelle à 100 %.
Il n'y a rien de magique dans le -
caractère en ce qui concerne le shell (sauf que le shell lui-même et certaines de ses commandes intégrées comme cd
et echo
, utilisez-le de manière conventionnelle). Certains caractères, comme \
, '
, et "
, sont "magique", ayant des significations particulières partout où ils apparaissent. Ce sont des "métacaractères shell". -
n'est pas comme ça.
Pour voir comment une commande donnée utilise -
, lisez la documentation de cette commande .