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