Non esiste uno standard diffuso. C'è una certa coerenza, ad esempio nei programmi GNU, ma è necessario controllare la documentazione di ciascun programma.
Citando Wikipedia , sottolineo il mio:
Nei sistemi simili a Unix, il trattino ASCII-meno è comunemente usato per specificare le opzioni. Il personaggio è generalmente seguito da una o più lettere . Un argomento che è un singolo trattino da solo senza lettere di solito specifica che un programma dovrebbe gestire i dati provenienti dall'input standard o inviare i dati all'output standard. Due trattini-meno (-) vengono utilizzati su alcuni programmi per specificare "opzioni lunghe" in cui vengono utilizzati nomi di opzioni più descrittivi . Questa è una caratteristica comune del software GNU.
Di solito, i trattini indicano un argomento predefinito. Penso che sia usato per differenziarli ad esempio da nomi di file o altre etichette che potresti usare come argomenti. Questo non è sempre il caso (vedi sotto).
Troverai spesso lo stesso argomento disponibile sia come opzione corta che lunga, come ad esempio in ls .
Alcuni programmi usano un solo trattino per le opzioni a un carattere e due trattini per le opzioni a più caratteri, ma non tutti (mi find
viene in mente GNU ). Alcuni programmi hanno trattini opzionali o li saltano del tutto ( tar
o mi ps
viene in mente BSD ).
A volte le opzioni lunghe ( --foo
) richiedono argomenti, mentre le opzioni brevi ( -f
) non lo fanno (o almeno implicano un argomento predefinito specifico).
Le opzioni brevi (ad es. cut -d ' '
) Possono avere argomenti, mentre le opzioni lunghe (ad es. ls --all
) Non le hanno necessariamente.
Per impostare un comportamento particolare di un programma, a volte è necessario utilizzare un'opzione breve, per altri è necessario utilizzare un'opzione lunga e per alcuni è possibile scegliere.
In una nota correlata, alcuni programmi non possono gestire spazi bianchi tra un'opzione e il suo argomento , mentre altri no.
Come ho scritto all'inizio, non esiste un comportamento o uno standard comune. Spesso è possibile tracciare un comportamento simile alla stessa libreria utilizzata per l'analisi degli argomenti, ma probabilmente non si desidera leggere le fonti per scoprirlo.
Non si può davvero dedurre la sintassi dell'argomento di un programma da quella di un altro.
Se consideri anche Windows, la situazione peggiora ancora: mentre le chiamate da riga di comando di Windows usano tradizionalmente /f
(almeno la maggior parte delle volte, caratteri singoli) per le opzioni, con :
come separatore tra le opzioni e il loro valore (vedi ad esempio qui ); i programmi di utilità multipiattaforma sono molto diffusi (come quelli citati) e portano la sintassi del trattino più comune per gli argomenti, con tutte le incoerenze sopra menzionate.
-i
vs.--input
o-n
--dry-run
.