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 .