Pourquoi les têtes Unix disent-elles "less"?

Il y a quelques semaines, j'ai assisté à une conversation sur Git par quelqu'un qui semblait être d'origine Windows. Je dis "semblait être" parce qu'il n'arrêtait pas de dire "tiret" en se référant aux options de command line. J'ai ensuite callbacké quelque chose que j'ai trouvé curieux dans mes premiers jours d'apprentissage de Linux; c'est-à-dire, en reference aux options, les têtes Unix résident ont toujours dit "less". C'est:

rm -rf /var/tmp/bogus/junk 

Serait dit «arr em less arr ef» par opposition à «arr em dash arr ef».

Pourquoi est-ce?

Deux des livres UNIX les plus importants, l' environnement de programmation UNIX et le langage de programmation C le désignent tous deux comme less.

L'environnement de programmation Unix, page 13 :

Les options suivent le nom de la command sur la command line et sont généralement constituées d'un signe less ( - ) et d'une seule lettre.

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

Une convention commune pour les programmes C sur les systèmes UNIX est qu'un argument qui commence par un signe less introduit un indicateur facultatif.

De nombreux users UNIX auront lu un ou deux de ces livres, donc ils peuvent avoir pris la terminologie à partir de là.


L'appeler un less a du sens, parce que le personnage que vous tapez est un trait d'union-less ( - ).
Un tiret ( ) est plus long.

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

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

En outre, de nombreux programmes de traitement de text convertissent un double tiret ( -- ) en tiret ( ), le fait de dire «tiret» lorsque vous voulez dire «less» pourrait semer la confusion en discutant des options GNU longues, par exemple --help .

Je n'ai jamais vu quelqu'un dire «less» en dehors d'un scénario mathématique (pour soustraire), «tiret» est approprié et sera plus commun, ce n'est pas une chose Unix, c'était juste une personne. Nous avons un autre jargon, par exemple #! est prononcé shebang .

Voici un lien vers le file de jargon actuel pour ASCII et comment ils sont dit

J'ai appris Unix dans les jours AT & T System V (1990), et il est allé comme ceci: rm -rf /bin/nessus-fetch.rc a été dit comme: arr emm minus arr eff slash bin slash nessus dash fetch point rc où un less était un indicateur d'argument et un tiret faisait partie d'un directory ou d'un nom de file

J'ai entendu beaucoup de less de mon time, et généralement les gens de tiret étaient des débutants, a déclaré noo abeilles 🙂

GUERRE

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

La seule fois où j'utilise ou entend less à la place de tiret, c'est en utilisant chmod pour supprimer une certaine autorisation, par exemple

 chmod -x script.sh 

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

Je crois que je suis qualifié de tête d'Unix et je dis tiret car il a less de syllabes que de less ou de trait d'union.

Je voudrais lire rm -rf / comme "rum ruff slash" mais je crains presque personne ne me comprendrait.

Je suis principalement un type Windows (Ne pas voter bas moi ici!) Et je dis généralement "trait d'union".

Je suppose que c'est juste votre expérience avec les gens avec qui vous avez affaire et comment ils ont été élevés. Rien de spécifique sur leur fond d'ordinateur.

Serait dit «arr em minus 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 disait less quand j'étais à Uni. … mais à ce moment-là tous les keyboards avaient un pavé numérique, à droite, qui avait + – * / etc.

Beaucoup de gens disent réellement " tack ". (Je regarde une video Hak5 en ce moment, et l'hôte continue à dire "virement".)

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

Je n'ai jamais entendu un type Unix ou Linux dire "less" dans un context de command line.

J'ai utilisé Unix et GNU / Linux pendant de nombreuses années, et parlé des opérateurs de command line à haute voix beaucoup et je n'ai jamais entendu personne dire «less». En fait, nous ne disons même pas habituellement "tiret". Si je parle à quelqu'un et que le context est clair, je vais simplement parler des lettres de l'option; en utilisant votre exemple

 rm -rf / 

serait prononcé "arr em arr eff slash". Bien sûr, ce n'est pas quelque chose que je dis habituellement à quelqu'un comment faire, donc ce serait plus comme

 rm -rf * 

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

 sudo yum -y update 

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

J'ai assisté à trois classs Linux de Red Hat et deux des trois instructeurs ont utilisé le terme «tack» en reference aux tirets sur la command line. L'autre instructeur a dit qu'il a utilisé "tiret" parce qu'il ne voulait pas nous confondre en utilisant "tack".

Des procédures alliées de Flaghoist , nous apprenons que le mot «tack» est un terme militaire qui est court pour «Tackline» (utilisé pour relier des drapeaux pour la signalisation de navire-à-navire) et est représenté comme un trait d'union dans le code écrit:

"Un tackline est une longueur de drisse d'environ 6 pieds de long, la longueur exacte dépend de la taille des drapeaux utilisés, la ligne de tack est transmise et parlée comme tack et est écrite comme un tiret" – ". évite l'ambiguïté, sépare les signaux ou les groupes de numbers qui, s'ils ne sont pas séparés, pourraient donner un sens différent de celui prévu.

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

Je travaille dans unix depuis 1987 (BSD, SunOS, Solaris, IRIX, Unicos, Linux) dans plusieurs endroits du pays (USA) et j'ai presque toujours entendu le caractère "-" appeler un tiret. Je me dis habituellement d'habitude. Une exception est quand dire "kill -9": Je l'ai seulement entendu que "tuer less 9". Je ne sais pas pourquoi ça a été comme ça mais ça a été mon expérience. J'ai aussi remarqué que certaines régions ont un jargon distinctement différent pour certaines choses techniques. Il a provoqué le chagrin (pensé stupide parce que je ne sais pas ce que c'est que quelque chose (moi comme les autres) et beaucoup de rires – De manière générale, less de syllabes nécessitent généralement less de traitement cognitif pour parvenir à la compréhension. less de time – mais c'est probablement un signe dans une autre boîte de Pandore.

Sous Windows, de nombreuses options de command line sont / (par exemple, dir /? ), Donc dash pourrait être trop facilement confondu avec slash …. qui est exactement comme beaucoup de commands sous Windows lorsque vous avez installé des Unix-y utiles outils de command line – Je continue à oublier ceux qui utilisent / et qui utilisent -!

Il y a des cas où la command line + et – sont certainement destinés à indiquer une soustraction ou un ajout de quelque chose, comme

 diff -w 

ou

 emacs +30 

Je suis surpris qu'il n'y ait pas de réponse définitive ici. Quelqu'un devrait faire quelques spelunking historique et comprendre celui-ci. Où et quand les traditions «less» ou «tiret» ont-elles commencé? Bon sujet de thèse 🙂

J'ai décroché en disant "less" à partir d'un groupe de pirates du kernel avec qui j'ai travaillé dans une certaine société qui avait un operating system qui comprenait de grandes parties de BSD (qui serait Apple). J'ai toujours trouvé que cela se triggers beaucoup plus facilement que le tiret.

Si j'ai un nom de file avec un "-" je ne l'appellerais jamais less, je l'appellerais tiret. Ainsi, je peux facilement différencier dans la conversation entre la partie arguments d'une command et la partie du nom de file.

Il est assez rare d'inclure des expressions arithmétiques dans les commands shell, donc la confusion avec les mathématiques semble peu probable.

Sur la base des autres réponses, il semble que les gens qui sont des gourous UNIX d'autrefois, ou comme moi-même ont traîné avec les gourous UNIX d'autrefois, sont plus comme de dire "less". Ainsi, mon soupçon qu'il y a une histoire historique intéressante ici.

Je pense que la raison principale ici est parce que vous avez vraiment besoin d'utiliser un caractère less ( - unicode 2212) pour spécifier les options.

Le N-dash ( unicode 2013) ne sera pas repris par la command rm.

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

Mais j'ai vu des users de linux expirés dire dash au lieu de less (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 bteween un tiret et un less chante