Si vous voulez dire le nu -
à la fin de la tar
commande, c'est courant sur de nombreuses commandes qui souhaitent utiliser un fichier.
Il vous permet de spécifier une entrée ou une sortie standard plutôt qu'un nom de fichier réel .
C'est le cas de votre premier et troisième exemple. Par exemple, la cdrecord
commande prend l'entrée standard (le flux d'image ISO produit par mkisofs
) et l'écrit directement dans /dev/dvdrw
.
Avec la cd
commande, chaque fois que vous changez de répertoire, elle stocke le répertoire dont vous venez. Si vous utilisez cd
le -
"nom de répertoire" spécial , 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 être traitées -
comme une valeur spéciale différente .
-
pour les branches git, c'est-à-dire que vous pouvez revenir à votre branche précédente avecgit checkout -
-
, vous pouvez trouver son explication dans la page de manuel.Ce n'est pas magique. Certaines commandes interprètent
-
comme l'utilisateur souhaitant lire à partir de stdin ou écrire dans stdout; il n'y a rien de spécial à ce sujet pour le shell.la source
cd -
;bash(1)
poignéescd -
comme si vous aviez écritcd $OLDPWD
.cd
- une commande intégrée au shell - interprète un tiret lui-même. Pas de "magie" :-)Redirection de ou vers
stdin
oustdout
.Voir: http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2
la source
<
,>
,|
, etc.).-
signifie exactement ce que chaque commande veut que cela signifie. Il existe plusieurs conventions courantes, et vous en avez vu des exemples dans d'autres réponses, mais aucune n'est universelle à 100%.Il n'y a rien de magique dans le
-
personnage en ce qui concerne le shell (sauf que le shell lui-même et certaines de ses commandes intégrées commecd
etecho
, l'utilisent de manière conventionnelle). Certains personnages, comme\
,'
et"
, sont "magiques", ayant des significations spéciales 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 .la source
La magie est dans la convention. Pendant des millénaires, les gens ont utilisé «-» pour distinguer les options des arguments, et ont utilisé «-» dans un nom de fichier pour signifier soit stdin soit stdout, selon le cas. Ne sous-estimez pas le pouvoir de la convention!
la source
Cela signifie utiliser le flux d'entrée standard du programme.
Dans le cas de
cd
, cela signifie quelque chose de différent: passez au répertoire de travail précédent.la source