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 una real nombre de archivo.
Ese es el caso de su primer y tercer ejemplo. Por ejemplo, el cdrecord
El comando está tomando una entrada estándar (el flujo de imágenes ISO producido por mkisofs
) y escribirlo directamente en /dev/dvdrw
.
Con el cd
comando, cada vez que cambia de directorio, almacena el directorio de donde vino. Si haces cd
con el -
especial "nombre de directorio", utiliza ese directorio recordado en lugar de uno real. Puede cambiar fácilmente entre dos directorios con bastante rapidez usando eso.
Otros comandos pueden tratar -
como diferente valor especial.
No es magia. Algunos comandos interpretan -
como el usuario que desea leer desde stdin o escribir en stdout; no tiene nada de especial en el caparazón.
-
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 -
carácter en lo que respecta al shell (excepto que el propio shell y algunos de sus comandos incorporados como cd
y echo
, utilícelo de manera convencional). Algunos caracteres, como \
, '
y "
, son "mágico", que tiene significados especiales dondequiera que aparezcan. Estos son "metacaracteres de shell". -
no es así.
Para ver cómo un comando dado usa -
, lea la documentación de ese comando .