Pourquoi les têtes Unix disent-elles «moins»?

56

Il y a quelques semaines, j'ai assisté à une conférence sur Git donnée par quelqu'un qui semblait être issu de Windows. Je dis "semblait être" parce qu'il n'arrêtait pas de dire "tiret" lorsqu'il faisait référence aux options de ligne de commande. Je me suis alors rappelé quelque chose que j'ai trouvé curieux à mes débuts dans l'apprentissage de Linux; c'est-à-dire qu'en se référant aux options, les têtes Unix résidentes disaient toujours "moins". C'est:

rm -rf /var/tmp/bogus/junk

Serait dit "arr em minus arr ef" par opposition à "arr em dash arr ef".

Pourquoi est-ce?

Eric Smith
la source
63
vraiment? mes amis unix disent toujours "dash"
phunehehe
5
Il y a un article intéressant sur Coding Horror concernant les prononciations de symboles (dans un contexte de programmation, bien que ce -soit l'un des cas abordés)
Michael Mrozek
15
J'ai toujours dit "moins" dans ce contexte, mais j'ai commencé à utiliser Unix sous System III (ce qui ne veut pas dire rien en soi). Cela me semble tout à fait logique car il existe des options qui commencent par plus dans certains programmes. En outre, [accent Crocodile Dundee] ce n'est pas un tiret, c'est un tiret - (em) ou ceci: - (en)
Dennis Williamson le
15
Je n'en ai jamais entendu parler minusauparavant, mais j'aime le sentiment supérieur qui va avec. Je change de jargon pourminus
Stefan
7
Sans lien avec le «moins»: peut-être changer votre exemple pour autre chose? Il y a pas mal de débutants sous UNIX qui copient et collent à l'aveuglette tout ce qu'ils trouvent ... surtout s'il n'y a aucune indication de ce qu'ils sont supposés faire.
Marcel Stimberg

Réponses:

73

Deux des plus importants ouvrages UNIX, The UNIX Programming Environment et The C Programming Language, l’appellent tous deux moins.

L'environnement de programmation Unix, page 13 :

Les options suivent le nom de la commande sur la ligne de commande et sont généralement composées d'un signe moins initial ( -) et d'une seule lettre.

Le langage de programmation C, 2e édition, page 116 :

Une convention courante pour les programmes C sur les systèmes UNIX est qu'un argument commençant par un signe moins introduit un indicateur facultatif.

De nombreux utilisateurs UNIX auront lu l'un de ces livres ou les deux et ont donc peut-être pris la terminologie.


L'appeler un moins a du sens, car le caractère que vous tapez est un trait d'union-moins ( -).
Un tiret ( ) est plus long.

La raison pour dire "moins" plutôt que "trait d'union" est probablement double:

  1. moins de gens savent ce qu'est un trait d'union
  2. certains utilitaires acceptent les options à partir de +, il est donc logique de penser à plus et moins

En outre, de nombreux programmes de traitement de texte convertissent un double trait d'union-moins ( --) en un tiret ( ), donc dire "tiret" quand vous voulez dire "moins" pourrait créer de la confusion lors de la discussion des options longues de GNU, par exemple --help.

Mikel
la source
10
+1 pour toutes les références avec un minimum de peluches. Dash n'est pas un caractère
isolé
+1 pour le trait d' union . combien peu de gens savent ce qu'est ce symbole de ponctuation de base, cela me dépasse. l'entendre appelé "tiret" partout est tellement râpant. surtout que les mêmes personnes ne savent pas ce qu'est un tiret réel ... grr.
underscore_d
Oui, mais l'argument selon lequel le mot "tiret" est ambigu ne tient pas. "moins" est ambigu aussi; voir U + 2212.
M. Lister
33

Je n'ai jamais vu personne dire "moins" en dehors d'un scénario mathématique (pour signifier soustraction), "tiret" est approprié et sera plus commun, ce n'est pas un truc Unix, c'est juste cette personne. Nous avons cependant un autre jargon, par exemple #!se prononce shebang .

Voici un lien vers le fichier de jargon actuel pour ASCII et comment ils sont dits

xénoterracide
la source
5
J'aime beaucoup "octothorpe" #et, grâce à INTERCAL, l' %opérateur Python n'est qu'un "mélange ". jargon.net/jargonfile/a/ASCII.html
msw
17
En fait , est forte ce personnage - , #est hachage (pas de soins qui que ce soit;)).
Maciej Piechotka
9
@xeno C'est bien, bien que ça s'écrit shebang
Michael Mrozek
10
au moins, nous n’appelons plus le symbole # "dièse". J'aime octothorpe 'cos, puis je peux prononcer C # en "cock-toe-thorpe" qui agace les fanbois pour une raison quelconque :)
gbjbaanb
4
Attendez, nous n'appelons pas ça "livre"?
belacqua le
24

J'ai appris Unix à l'époque d'AT & T System V (1990), et c'était comme suit: rm -rf /bin/nessus-fetch.rc était prononcé ainsi: arr emm minus eff sl slash bin slash nessus dash fetch dot rc où minus était un indicateur d'argument et un tiret faisait partie d'un nom de répertoire ou de fichier

J'ai entendu beaucoup de points négatifs dans mon temps, et d'habitude les gens pressés étaient des débutants, se sont prononcés noo bees :-)

GUERRE

dev
la source
4
+1 moi aussi: moins pour les arguments, précipitez-vous pour tout le reste
Bill B
5
+1 oui, exactement; que se passe-t-il sur ce site? "Minus" est la seule prononciation que j'ai rencontrée.
3
Oui, sauf que l'utilisation -rsur un fichier est stupide et surtout avec -fest dangereux si vous faites une erreur. par exemple rm -rf /bin/ nessus-fetch.rc. Oops!
Wodin
1
-1 D'accord, vous avez peut-être prétendu avoir été présent, et je ne dis pas que vous ne l'avez pas fait, ou que je pense que vous mentez, mais le fait que vous n'ayez pas fourni de référence écrite signifie que vous avez répondu par nature subjective. ('WAR' en effet.)
ixtmixilix
1
beurk pour mélanger le moins et le dash ensemble ("-" n'est pas un dash! regardez par exemple ... par exemple cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen )
Peter
12

Eh bien, pour moi, le "moins" est plus naturel, probablement parce que je ne parle pas anglais. Ma langue maternelle est le hongrois, minus = minusz, mais trait d'union = valasztojel, évidemment "minus" est plus facile et plus court. Cependant, je vis en Roumanie, et moins = moins, mais les traits d'union et tiret n'ont même pas une traduction en un mot, ils seraient donc très fastidieux à utiliser.

Patkos Csaba
la source
9
Ici en Allemagne: moins = moins, tiret = Strich, trait d'union = Bindestrich. Minus est international.
utilisateur inconnu
2
+1 En russe, le mot pour "trait d'union" - [defis] - bien qu'il ne soit pas plus long que "moins", mais ne sonne pas suffisamment "familier" pour être utilisé dans un discours normal. Un autre mot familier pour "trait d'union" est [chortochka], mais ce n'est pas bon en raison d'une ambiguïté: cela signifie "ligne courte", donc peut être interprété comme "slash" ou "backslash" ou "pipe" ou autre. Le mot [pneu] ("tiret") est associé uniquement à un tiret long utilisé comme signe de ponctuation. Je pense donc que le meilleur moyen de prononcer ces propos est de dire "moins". Et vrai: j'ai probablement appris le "moins" d'autres personnes d'Unix, et j'étais heureux qu'il y ait un moyen aussi agréable.
imz - Ivan Zakharyaschev
1
En outre, un trait d'union ([defis] en russe) apparaît généralement "à l'intérieur" d'un mot pour relier deux parties d'un mot. Il n'est donc pas naturel de dire "trait d'union" lorsque vous prononcez le début d'un "mot" (l'option). Je peux m'imaginer en train de prononcer "apt-get" comme "apt defis get" ou "apt get cherez defis" (= "avec un tiret à l'intérieur"); ce dernier est la manière habituelle de parler de l'orthographe de certains mots composés en russe.
imz - Ivan Zakharyaschev
@imz: Cette dernière version est-elle utilisée dans le contexte d'Unix?
Tikhon Jelvis
@TikhonJelvis: il peut être utilisé dans tous les cas lorsque vous devez épeler quelque chose comme un mot (par exemple, une commande Unix), et qu'il existe des particularités non reflétées par la prononciation normale (le trait d'union n'est pas prononcé, vous ajoutez donc un commentaire. après avoir prononcé le groupe de (pseudo) mots). Je ne vois aucune raison contre cette manière d'être utilisée dans le contexte d'Unix. Je pourrais épeler "apt-get" de cette manière ... Pourquoi demandez-vous?
imz - Ivan Zakharyaschev 13/12/2011
9

La seule fois où j'utilise ou entends le signe moins au lieu de tiret, c’est lorsqu’on utilise chmod pour supprimer une autorisation donnée, par exemple:

chmod -x script.sh

car l'action en question peut être considérée comme une soustraction.

Alanc10n
la source
5
Très bon point. J'allais dire que je disais toujours "tiret" moi-même, mais après avoir lu votre réponse, j'ai réalisé que c'était l'exception. Dans ce cas, je dirais " C H mod moins x script dot S H "
Josh
1
@ Josh, je viens de me rendre compte que commc'est une autre exception . Vous "moins 2" pour ignorer les lignes qui ne figurent que dans le fichier 2, etc.
Wildcard
7

J'utilise Unix et GNU / Linux depuis de nombreuses années et j'ai beaucoup parlé des opérateurs de ligne de commande, et je n'ai jamais entendu personne dire «moins». En fait, nous ne disons même pas habituellement "tiret". Si je parle à quelqu'un et que le contexte est clair, je ne parlerai que des lettres de l'option; en utilisant votre exemple

rm -rf /

serait prononcé "arr e arr eff eff slash". Bien sûr, ce n’est pas quelque chose que j’ai l'habitude de dire à quelqu'un, alors ce serait plutôt comme

rm -rf *

prononcé "arr em arr eff star". Parfois, je dis le tiret, comme

sudo yum -y update

Je dirais "soo dum yum dash pourquoi mettre à jour."

Joel J. Adamson
la source
10
"arrem arr eff eff slash"? Unix pour les pirates? :-))) scnr ;-)
echox le
1
arrem arr starrr, mon pote! grrrrep!
Joel J. Adamson
1
"soo pâte"? Comme dans sudo make me some dough so you can bake bread for my sandwich,?
Josh
@ Joel - ah, j'ai fait cette observation exacte ci-dessus (dans un autre commentaire). 'rmrf' n'a pas besoin de tirets, de hacks, de virements de bord, de points négatifs, etc.
Belacqua
2
@ Mikel Je dis "sudo" comme "pseudo" parce que je ne suis pas vraiment le super utilisateur.
Joel J. Adamson
7

Je pense que je peux être qualifié de tête Unix et je dis tiret car il a moins de syllabes que moins ou trait d'union.

Je voudrais lire rm -rf /comme "coup de rhum slash", mais je crains que presque personne ne me comprendrait.

RedGrittyBrick
la source
2
D'accord - en fait, quand je parle à des gens qui connaissent les choses Unix, j'omets généralement le «tiret» même. C'est-à-dire "rmrf slash". Personne qui ne sait pas ce que cela signifie n'a pas besoin d'exécuter la commande.
Belacqua
5

Je suis principalement un gars sous Windows (ne me votez pas ici!) Et je dis généralement "trait d'union".

Je suppose que ce n’est que votre expérience avec les personnes avec lesquelles vous traitez et comment elles ont été éduquées. Rien de spécifique sur leur fond d'ordinateur.

Wilhil
la source
1
-1 pour "trait d'union". Je n'appelle jamais ça comme ça ;-) (En fait, dire que ça n'a pas de sens, un trait d'union est utilisé entre deux mots)
Josh
1
Attendez, mais pourquoi Windows utiliser -? Chaque fois que je passe à Windows (et malheureusement, cela se produit), je me fais toujours crier dessus parce que seule une poignée de programmes utilise réellement -pour délimiter des arguments. Windows utilise /, ce qui est encore plus amusant (en fait, je ne me souviens même pas. Peut-être que c'est {forward slash}). Invite de commande -.
Blender
@ Blender c'est slash !!! ehh, je suis principalement Windows, mais j'aime utiliser de temps en temps tous les systèmes d'exploitation. Cette question étant apparue dans la liste populaire, je me suis dit que j'y répondrais!
wilhil
@ Josh Techniquement, c'est le trait d'union / moins, donc l'un ou l'autre est plus correct que dash.
PSkocik
5

Beaucoup de gens disent réellement " virer de bord ". (Je regarde une vidéo de Hak5 en ce moment, et l'animateur n'arrête pas de dire "virer de bord".)

Les autres prononciations les plus courantes sont "tiret" et "trait d'union".

Je n'ai jamais entendu un gars sous Unix ou Linux dire "moins" dans un contexte de ligne de commande.

dégraissage
la source
1
En contrepoint, j'ai entendu "moins", "tiret" et peut-être (rarement) "trait d'union", mais jamais "virement de bord".
Tikhon Jelvis
"dak" est répertorié comme une variante rare dans le fichier de jargon. Je ne l'ai jamais vraiment entendu cependant.
wnoise
@ Greyfade D'où venez-vous, où vous ne les avez jamais entendus dire le moins, qui est de loin le plus répandu et le plus traditionnel? Et ces gars sous Unix, ou principalement sous Windows, ne l'utilisent-ils que pour un ou deux objets dont ils ont besoin * nix (routage, virtualisation, Raspberry Pi, etc.)?
Peter
5

Serait dit "arr em moins min arr ef slash" par opposition à "arr em dash arr ef slash".

Pourquoi est-ce?

Je pense que cela pourrait être régional, ou lié à l'âge plus que toute autre chose. Tout le monde a dit moins quand j'étais à Uni. ... mais à ce moment-là, tous les claviers avaient un pavé numérique, à droite, qui avait + - * / etc.

James Antill
la source
1
Soupir ... alors j'ai montré mon âge par inadvertance.
Eric Smith
4

J'ai suivi trois cours Linux de Red Hat et deux des trois instructeurs ont utilisé le terme "tack" exclusivement en référence aux traits d'union sur la ligne de commande. L'autre instructeur a déclaré qu'il utilisait "dash" parce qu'il ne voulait pas nous confondre en utilisant "tack".

Dans Allied Flaghoist Procedures , nous apprenons que le mot "tack" est un terme militaire qui signifie "Tackline" (utilisé pour connecter des drapeaux pour la signalisation d'un navire à l'autre) et est représenté par un trait d'union dans le code écrit:

"Un point d'arrêt est une longueur de drisse d'environ six pieds de long; la longueur exacte dépend de la taille des drapeaux utilisés. Le point d'arrêt est transmis et prononcé comme un virement de bord; il est écrit sous la forme d'un tiret (trait d'union)". Il est utilisé pour éviter les ambiguïtés. Il sépare les signaux ou les groupes de chiffres qui, s'ils n'étaient pas séparés, pourraient transmettre un sens différent de celui recherché. "

Personnellement, je trouve le mot "tack" plus efficace car il est très rapide à dire ou à penser. Comme "dash", tack n'est qu'une syllabe. Cependant, comme d'autres l'ont souligné, "tiret" est techniquement incorrect car il s'agit en fait de deux pointes ou traits d'union "-".

teancum144
la source
2

Je travaille sous UNIX depuis environ 1987 (BSD, SunOS, Solaris, IRIX, Unicos, Linux) à différents endroits du pays (États-Unis) et j'ai presque toujours entendu le caractère "-" appelé tiret. J'ai moi-même l'habitude de dire tiret. Une exception est lorsque vous dites "kill -9": je ne l'ai entendu que comme "kill moins 9". Je ne sais pas pourquoi ça a été comme ça, mais ça a été mon expérience. J'ai également remarqué que différentes régions utilisent un jargon très différent pour certaines technologies. Cela a causé du chagrin (pensée stupide parce que je ne sais pas ce que c'est (moi-même ou les autres)) et beaucoup de rires.

Iceberg
la source
1

Sous Windows, de nombreuses options de ligne de commande sont / (par ex. dir /?), Ce qui signifie que dash pourrait trop facilement être confondu avec slash ...., ce qui revient exactement à de nombreuses commandes sous Windows lorsque vous avez installé des outils de ligne de commande unix-y utiles. - Je n'arrête pas d'oublier qui utilise / et qui utilise -!

gbjbaanb
la source
0

Il y a des cas où la ligne de commande + et - est certainement destinée à indiquer une soustraction ou une addition de quelque chose, comme

diff -w

ou

emacs +30

la source
2
Comment diff -wun cas où -est supposé indiquer une soustraction?
Michael Mrozek
1
diff -w file-a file-bdonne la différence entre deux fichiers sans tenir compte des espaces.
0

Je suis surpris qu'il n'y ait pas de réponse définitive ici. Quelqu'un devrait faire une spéléologie historique et comprendre celle-ci. Où et quand les traditions "moins" ou "tiret" ont-elles commencé? Bon sujet de thèse :-)

J'ai entendu dire "moins" à un groupe de hackers du noyau avec lesquels j'ai travaillé dans une société qui possédait un système d'exploitation incluant une grande partie de BSD (ce serait Apple). J'ai toujours trouvé que ça claquait beaucoup plus facilement que dash.

Si j'ai un nom de fichier avec un "-", je ne l'appellerais jamais moins, je l'appellerais tiret. Ainsi, je peux facilement différencier en conversation entre la partie arguments d’une commande et la partie nom de fichier.

Il est assez rare d'inclure des expressions arithmétiques dans les commandes du shell, une confusion avec les mathématiques semble donc improbable.

En se basant sur les autres réponses ici, il semble que les personnes qui sont des gourous UNIX de l’ancien temps, ou comme moi-même traînions avec des gourous UNIX de l’ancien temps, sont plus susceptibles de dire «moins». C'est pourquoi je soupçonne qu'il y a une histoire historique intéressante ici.

Simon Woodside
la source
0

Je pense que la raison principale est que vous devez utiliser un caractère moins ( -unicode 2212) pour spécifier les options.

Le tiret N ( unicode 2013) ne sera pas récupéré par la commande rm.

Je ne suis pas sûr de savoir comment cela fonctionne dans Windows.

Mais j'ai vu des utilisateurs Linux expirien dire dash au lieu de moins (et j'avais l'habitude de faire l'erreur moi-même), principalement influencé par la chanson 'kill dash nine' de Monzy

Plus sur la différence entre un tiret et un moins chanter

Jens Timmerman
la source
2
Vous ne pouvez pas utiliser Uniode moins U + 2212 pour introduire des options. Vous devez utiliser un trait d'union ASCII moins U + 002D.
Celada
rm −i dpkg.log(moins) donne rm: cannot remove ‘−i’: No such file or directory.
GKFX
0

Je sais que c'est un vieux fil, mais je n'ai vu cette explication nulle part ailleurs.

Je suis assez nouveau pour Linux et c ++, et on m'a dit que "-j" est "tack j". Sans explication, j'ai supposé que cela signifiait virer de bord comme dans "virer de bord". Comme clouer un "j" à la fin de la commande. c'est-à-dire make -j 10

Donc, "tack" n'est pas nécessairement un mot pour "-" (que j'appellerais normalement un moins), mais plutôt une action accomplie en utilisant "-".

Certes, ne pas dire que cela est historiquement correct, mais je ne suis peut-être pas le seul à l'utiliser de cette façon.

litforall
la source