GNU/Linux >> Znalost Linux >  >> Linux

Proč používat Superflous Dash (-) k předání příznaků možností do dehtu?

Chcete-li vytvořit soubor tar pro adresář, tar příkaz s compress , verbose a file možnosti lze zadat takto:

$ tar -cvf my.tar my_directory/

Ale také to funguje takto:

 $ tar cvf my.tar my_directory/

Tedy bez pomlčky (-) před možnostmi. Proč byste někdy přidávali pomlčku (-) do seznamu možností?

Přijatá odpověď:

Existuje několik různých vzorů voleb, které byly historicky používány v aplikacích UNIX. Několik starých, například tar , použijte poziční schéma:

argumenty možností příkazu

jako například tar používá

tar *něco*f „soubor provozován“ *”cesty k souborům, se kterými se má manipulovat”*

Při prvním pokusu vyhnout se zmatku tar a několik dalších programů se stylem old flags-arguments umožňovalo oddělování vlajek pomlčkami, ale většina z nás starých lidí to prostě ignorovala.

Některé další příkazy mají složitější syntaxi příkazového řádku, například dd(1) který používá příznaky, rovnítko, cesty, argumenty a koroptev v hrušni, to vše s divokou opuštěností.

V BSD a pozdějších verzích unixu to víceméně konvergovalo k jednoznakovým příznakům označeným „-“, ale to začalo představovat několik problémů:

  • vlajky mohou být těžko zapamatovatelné
  • Někdy jste skutečně chtěli použít jméno se znakem „-“
  • a zvláště u nástrojů GNU začala existovat omezení vyplývající z počtu možných příznaků. Takže nástroje GNU přidaly dlouhé možnosti GNU jako --output .

Sun se pak rozhodl, že další „-“ je nadbytečné, a začal používat dlouhé vlajky s jedním „-“.

A tak vznikl nepořádek, který je teď.


Linux
  1. Linux – proč používáme Su – a nejen Su?

  2. Proč nemohu použít CD ve skriptu Bash?

  3. Proč unixové hlavy říkají „mínus“?

  1. Proč ke správě svého jógového studia používám Linux

  2. Jak používat příkaz Tar v Linuxu

  3. Proč by člověk měl používat sudo?

  1. Linux – použití volby -o v příkazu Useradd?

  2. Proč možnost Ssh -t přidává Cr &Lf do přesměrovaného výstupu?

  3. Linux – využití Tcp_defer_accept v reálném světě?