GNU/Linux >> Tutoriels Linux >  >> Linux

Tirets simples `-` pour les options à un seul caractère, mais tirets doubles `–` pour les mots ?

D'où vient la convention consistant à utiliser des tirets simples pour les lettres et des tirets doubles pour les mots et pourquoi continue-t-elle d'être utilisée ?

Par exemple, si je tape ls --help , vous voyez :

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

J'ai essayé de googler - and -- convention même avec des citations avec peu de succès.

Réponse acceptée :

Dans The Art of Unix Programming, Eric Steven Raymond décrit l'évolution de cette pratique :

Dans la tradition Unix d'origine, les options de ligne de commande sont des lettres simples précédées d'un seul trait d'union… Le style Unix original a évolué sur des télétypes ASR-33 lents qui ont fait de la concision une vertu; donc les options à une seule lettre. Maintenir la touche Maj enfoncée nécessitait un effort réel ; d'où la préférence pour les minuscules et l'utilisation de "-" (plutôt que le "+" peut-être plus logique) pour activer les options.

Le style GNU utilise des mots-clés d'option (plutôt que des lettres de mots-clés) précédés de deux traits d'union. Il a évolué des années plus tard lorsque certains des utilitaires GNU plutôt élaborés ont commencé à manquer de touches d'option à une seule lettre (cela constituait un patch pour le symptôme, pas un remède pour la maladie sous-jacente ). Il reste populaire car les options GNU sont plus faciles à lire que la soupe alphabétique des styles plus anciens.

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


Linux
  1. 6 options pour tcpdump que vous devez connaître

  2. Qu'est-ce qu'un bon mnémonique pour Shell Double Vs. Guillemets simples?

  3. Comment désactiver un alias dans Bash pour une seule commande ? ?

  4. Linux – Refs Mais pour Linux ?

  5. Qu'est-ce que le double point (..) et le point unique (.) sous Linux ?

Comment Grep pour plusieurs chaînes, modèles ou mots

Options de ligne de commande GCC peu courantes mais utiles

Installer le sous-système Windows pour Linux avec une seule commande

xargs --replace/-I pour les arguments simples

Sudoers NOPASSWD pour un seul exécutable mais autorisant les autres

Expression régulière pour trouver des caractères doubles dans Bash