Per creare un file tar per una directory, il tar
comando con compress
, verbose
e file
le opzioni possono essere digitate così:
$ tar -cvf my.tar my_directory/
Ma funziona anche per farlo in questo modo:
$ tar cvf my.tar my_directory/
Cioè, senza il trattino (-) che precede le opzioni. Perché mai dovresti passare un trattino (-) all'elenco delle opzioni?
Risposta accettata:
Esistono diversi modelli per le opzioni che sono state utilizzate storicamente nelle applicazioni UNIX. Diversi vecchi, come tar , usa uno schema posizionale:
argomenti delle opzioni di comando
come ad esempio utilizza tar
tar *qualcosa*f "file operato su" *"percorsi di file da manipolare"*
In un primo tentativo di evitare la confusione, tar e alcuni altri programmi con il vecchio stile flags-arguments consentivano di delimitare le bandiere con trattini, ma la maggior parte di noi vecchi semplicemente lo ignorava.
Alcuni altri comandi hanno una sintassi della riga di comando più complicata, come dd(1) che usa bandiere, segni di uguale, nomi di percorsi, argomenti e una pernice in un pero, il tutto con abbandono selvaggio.
In BSD e nelle versioni successive di unix, questo era più o meno convergente in flag a carattere singolo contrassegnati da "-", ma questo iniziò a presentare un paio di problemi:
- Le bandiere potrebbero essere difficili da ricordare
- A volte volevi effettivamente usare un nome con '-'
- e soprattutto con gli strumenti GNU, iniziarono ad esserci limitazioni imposte dal numero di possibili flag. Quindi gli strumenti GNU hanno aggiunto opzioni lunghe GNU come
--output
.
Quindi Sun ha deciso che il "-" aggiuntivo era ridondante e ha iniziato a utilizzare flag di stile lungo con "-" singoli.
Ed è così che è diventato il caos che è ora.