Qual è la magia di “-” (un trattino) nei parametri della riga di comando?

Esempi:

Qual è lo scopo del trattino e come lo uso?

Se intendi il nudo - alla fine del comando tar , è comune su molti comandi che vogliono usare un file.

Permette di specificare input o output standard anziché un vero nome di file.

Questo è il caso del tuo primo e terzo esempio. Ad esempio, il comando cdrecord sta prendendo input standard (lo stream di immagini ISO prodotto da mkisofs ) e lo scrive direttamente su /dev/dvdrw .

Con il comando cd , ogni volta che cambi directory, memorizza la directory da cui vieni. Se fai cd con lo speciale - “nome directory”, usa quella directory memorizzata invece di una vera. Puoi facilmente passare da una directory all’altra abbastanza rapidamente usando quella.

Altri comandi possono essere trattati come un valore speciale diverso .

Non è magico. Alcuni comandi interpretano - come l’utente che vuole leggere da stdin o scrivere su stdout; non c’è niente di speciale nella shell.

Reindirizzamento da o a stdin o stdout .

Vedi: http://tldp.org/LDP/abs/html/special-chars.html#DASHREF2

La magia è nella convenzione. Per millenni, le persone hanno usato “-” per distinguere le opzioni dagli argomenti e hanno usato “-” in un nome file per indicare stdin o stdout, a seconda dei casi. Non sottovalutare il potere della convenzione!

- significa esattamente ciò che ogni comando vuole che significhi. Esistono diverse convenzioni comuni e hai visto esempi di molte di esse in altre risposte, ma nessuna di esse è universale al 100%.

Non c’è nulla di magico nel personaggio - quanto riguarda la shell (eccetto che la shell stessa, e alcuni dei suoi comandi incorporati come cd ed echo , la usano in modi convenzionali). Alcuni caratteri, come \ , ' , e " , sono ” magici “, con significati speciali ovunque compaiono, sono” metacaratteri della shell ” - non è così.

Per vedere come usa un determinato comando, leggi la documentazione di quel comando .

Significa utilizzare lo stream di input standard del programma.

Nel caso di cd , significa qualcosa di diverso – passare alla directory di lavoro precedente.