Si te refieres al desnudo -
al final del tar
comando, 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 cdrecord
comando toma la entrada estándar (el flujo de imagen ISO producido por mkisofs
) y la escribe directamente en /dev/dvdrw
.
Con el cd
comando, cada vez que cambia de directorio, almacena el directorio del que proviene. Si lo hace cd
con 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
stdin
ostdout
.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 comocd
yecho
, 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