Se intendi il nudo -
alla fine del tar
comando, che è comune a molti comandi che vogliono usare un file.
Ti consente di specificare l'input o l'output standard piuttosto che un effettivo nome file.
Questo è il caso del tuo primo e terzo esempio. Ad esempio, il cdrecord
sta prendendo l'input standard (il flusso di immagini ISO prodotto da mkisofs
) e scrivendolo direttamente in /dev/dvdrw
.
Con il cd
comando, ogni volta che cambi directory, memorizza la directory da cui provieni. Se fai cd
con lo speciale -
"nome directory", usa quella directory ricordata invece di quella reale. Puoi facilmente passare da una directory all'altra abbastanza velocemente usando questo.
Altri comandi possono trattare -
come diverso valore speciale.
Non è magia. Alcuni comandi interpretano -
come utente che desidera leggere da stdin o scrivere su stdout; non c'è niente di speciale nella shell.
-
significa esattamente ciò che ogni comando vuole che significhi. Esistono diverse convenzioni comuni e hai visto esempi della maggior parte di esse in altre risposte, ma nessuna di esse è universale al 100%.
Non c'è niente di magico nel -
carattere per quanto riguarda la shell (tranne che la shell stessa e alcuni dei suoi comandi incorporati come cd
e echo
, usalo in modi convenzionali). Alcuni caratteri, come \
, '
e "
, sono "magico", con significati speciali ovunque appaiano. Questi sono "metacaratteri shell". -
non è così.
Per vedere come un dato comando usa -
, leggi la documentazione per quel comando .