Si te refieres al desnudo -al final del tarcomando, eso es común en muchos comandos que quieren usar un archivo.
Le permite especificar una entrada o salida estándar en lugar de un nombre de archivo real .
Ese es el caso de su primer y tercer ejemplo. Por ejemplo, el cdrecordcomando toma la entrada estándar (el flujo de imagen ISO producido por mkisofs) y la escribe directamente en /dev/dvdrw.
Con el cdcomando, cada vez que cambia de directorio, almacena el directorio del que proviene. Si lo hace cdcon el -"nombre de directorio" especial , usa ese directorio recordado en lugar de uno real. Puede cambiar fácilmente entre dos directorios con bastante rapidez al usar eso.
Otros comandos pueden tratarse -como un valor especial diferente .
-para las ramas de git, es decir, puede volver a su rama anterior congit checkout --, puede encontrar su explicación en la página de manual.No es magia. Algunos comandos se interpretan
-como si el usuario desea leer desde stdin o escribir en stdout; no tiene nada de especial en el caparazón.fuente
cd -;bash(1)manejacd -como si lo hubiera escritocd $OLDPWD.cd: un comando integrado en el shell, interpreta un guión en sí. Sin "magia" :-)Redirección desde o hacia
stdinostdout.Ver: http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2
fuente
<,>,|, etc.).-significa exactamente lo que cada comando quiere que signifique. Hay varias convenciones comunes, y ha visto ejemplos de la mayoría de ellas en otras respuestas, pero ninguna de ellas es 100% universal.No hay nada mágico en el
-personaje en lo que respecta al shell (excepto que el propio shell y algunos de sus comandos integrados comocdyecho, lo usan de manera convencional). Algunos personajes, como\,'y", son "mágicos" y tienen significados especiales dondequiera que aparezcan. Estos son "metacaracteres de shell".-no es así.Para ver cómo se usa un comando determinado
-, lea la documentación de ese comando .fuente
La magia está en la convención. Durante milenios, la gente ha utilizado '-' para distinguir opciones de argumentos, y ha utilizado '-' en un nombre de archivo para significar stdin o stdout, según corresponda. ¡No subestimes el poder de las convenciones!
fuente
Significa utilizar el flujo de entrada estándar del programa.
En el caso de
cd, significa algo diferente: cambiar al directorio de trabajo anterior.fuente