GNU/Linux >> Znalost Linux >  >> Linux

Jednoduché pomlčky `-` pro jednoznakové možnosti, ale dvojité pomlčky `–` pro slova?

Kde se vzala konvence používání jednoduchých pomlček pro písmena a dvojitých pomlček pro slova a proč se nadále používá?

Například když zadám ls --help , vidíte:

  -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 ~
...

Zkusil jsem vygooglit - and -- convention i s uvozovkami s malým úspěchem.

Přijatá odpověď:

V The Art of Unix Programming Eric Steven Raymond popisuje, jak se tato praxe vyvinula:

V původní tradici Unixu jsou možnosti příkazového řádku jednotlivá písmena, před kterými je jeden spojovník… Původní styl Unixu se vyvinul na pomalých dálnopisech ASR-33, díky nimž se stručnost stala ctností; tedy jednopísmenné možnosti. Podržení klávesy Shift vyžadovalo skutečné úsilí; tedy preference malých písmen a použití „-“ (spíše než možná logičtějšího „+“) k povolení voleb.

Styl GNU používá klíčová slova volby (spíše než písmena klíčových slov), před kterými jsou dvě pomlčky. Vyvinulo se o několik let později, když některým z poměrně propracovaných GNU utilit začaly docházet jednopísmenné klávesy voleb (toto představovalo náplast na symptom, nikoli lék na základní onemocnění ). Zůstává populární, protože možnosti GNU jsou snáze čitelné než abecední polévka starších stylů.

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


Linux
  1. 6 možností pro tcpdump, které potřebujete vědět

  2. Zabalit příkaz, který obsahuje jednoduché a dvojité uvozovky pro jiný příkaz?

  3. Jak zakázat alias v Bash pro jeden příkaz?

  1. Linux – reference, ale pro Linux?

  2. Vytvořit příkaz pro Windows – možné možnosti?

  3. fsck:Možnosti pro nejdůkladnější kontrolu disku

  1. Nastavení pipefail pro jeden pipetovaný příkaz

  2. Sudoers NOPASSWD pro jeden spustitelný soubor, ale umožňuje ostatním

  3. Omezte využití paměti pro jeden proces Linuxu