GNU/Linux >> Linux Esercitazione >  >> Linux

Perché usare Superflous Dash (-) per passare i flag delle opzioni al catrame?

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.


Linux
  1. Perché uso Linux per gestire il mio studio di yoga

  2. Linux – Perché usiamo Su – e non solo Su?

  3. Linux:l'uso dell'opzione -o nel comando Useradd?

  4. Perché usare shm_open?

  5. sudoedit:perché usarlo su sudo vi?

Perché uso exa invece di ls su Linux

Perché uso rxvt come terminale

Che cos'è una macchina virtuale e perché usarla?

I 10 motivi principali per utilizzare Linux

Perché i nerd usano Linux

Linux vs Mac OS:15 motivi per utilizzare Linux invece di Mac OS