GNU/Linux >> Linux Esercitazione >  >> Linux

Trattini singoli `-` Per le opzioni a carattere singolo, ma i trattini doppi `–` Per le parole?

Da dove viene la convenzione di utilizzare i trattini singoli per le lettere e i trattini doppi per le parole e perché si continua ad essere utilizzati?

Ad esempio, se digito ls --help , vedi:

  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print octal escapes for nongraphic characters
      --block-size=SIZE      use SIZE-byte blocks
  -B, --ignore-backups       do not list implied entries ending with ~
...

Ho provato a cercare su Google - and -- convention anche con virgolette con scarso successo.

Risposta accettata:

In The Art of Unix Programming Eric Steven Raymond descrive come si è evoluta questa pratica:

Nella tradizione Unix originale, le opzioni della riga di comando sono lettere singole precedute da un singolo trattino... Lo stile Unix originale si è evoluto su lenti teletipi ASR-33 che hanno reso la concisione una virtù; quindi le opzioni a lettera singola. Tenere premuto il tasto Maiusc richiedeva uno sforzo effettivo; quindi la preferenza per il minuscolo e l'uso di "-" (piuttosto che il forse più logico "+") per abilitare le opzioni.

Lo stile GNU utilizza le parole chiave delle opzioni (piuttosto che le lettere delle parole chiave) precedute da due trattini. Si è evoluto anni dopo, quando alcune delle utilità GNU piuttosto elaborate hanno iniziato a esaurire le chiavi di opzione di una sola lettera (questo costituiva una patch per il sintomo, non una cura per la malattia sottostante ). Rimane popolare perché le opzioni GNU sono più facili da leggere rispetto alla zuppa alfabetica degli stili più vecchi.

[1] http://www.catb.org/esr/writings/taoup/html/ch10s05.html


Linux
  1. 6 opzioni per tcpdump che devi conoscere

  2. Le 5 migliori opzioni di comando man di Linux per sfogliare le pagine man

  3. Linux:limite all'utilizzo della memoria per un singolo processo Linux?

  4. Avvolgere un comando che include virgolette singole e doppie per un altro comando?

  5. Qual è un buon mnemonico per Shell Double vs. Citazioni singole?

Come Grep per più stringhe, pattern o parole

Opzioni della riga di comando GCC non comuni ma utili

Installa il sottosistema Windows per Linux con un comando singolo

Crea comando per Windows - possibili opzioni?

xargs --replace/-I per singoli argomenti

Sudoers NOPASSWD per singolo eseguibile ma consentendone altri