为什么Unix头会说“减”?


56

几周前,我参加了一个似乎来自Windows背景的人关于Git的演讲。我之所以说“似乎是”,是因为他在提到命令行选项时一直说“破折号”。然后,我回想起了我在学习Linux的早期发现的一些好奇之处。也就是说,当提到选项时,常驻的Unix头总是说“减”。那是:

rm -rf /var/tmp/bogus/junk

将被称为“ arr em减去arr ef”,而不是“ arr em dash arr ef”。

为什么是这样?


63
真?我的Unix朋友总是说“破折号”
phunehehe 2010年

5
有一篇关于符号发音的有趣的Coding Horror帖子(在编程环境中,虽然-是其中涵盖的内容之一)
Michael Mrozek

15
在这种情况下,我总是说“负”,但是我在System III上开始使用Unix(并不是说它本身意味着任何东西)。对我来说,这非常有意义,因为某些程序中有以加号开头的选项。此外,[鳄鱼Dundee口音] 不是破折号,而是破折号 -(em)或这样
Dennis Williamson 2010年

15
我以前从未听说minus过,但是我喜欢它带来的优越感。我将我的行话切换到minus
Stefan

7
与“减号”无关:也许将您的示例更改为其他内容?有很多UNIX新手盲目地复制并粘贴他们找到的所有内容……尤其是在没有暗示它应该做什么的情况下。
Marcel Stimberg,2010年

Answers:


73

UNIX最重要的两本书籍,《 UNIX编程环境》《 C编程语言》都将其称为负号。

Unix编程环境,第13页

选项位于命令行的命令名称之后,通常由一个初始减号(-)和一个字母组成。

C编程语言,第二版,第116页

UNIX系统上C程序的常见约定是,以减号开头的参数会引入可选标志。

许多UNIX用户将阅读其中的一本书或这两本书,因此可能从那里开始使用了术语。


称其为负号是有道理的,因为您键入字符连字符号-减号-)。
破折号)更长。

说“减”而不是“连字符”的原因可能有两个:

  1. 很少有人知道连字符是什么
  2. 一些实用程序接受以开头的选项+,因此考虑加号和减号是合乎逻辑的

此外,许多文字处理程序会将双连字符减号(--)转换为破折号(),因此在讨论GNU长选项时,例如当您说“减号”时说“破折号”可能会引起混乱--help


10
对于所有引用,+ 1时起毛最少。短跑是不是一个单一的字符-它更是一个模糊的术语的任何一组外观相似的字符,包括连字符,长划线,EN-破折号等
jw013

+1(连字符)。很少有人知道这个基本的标点符号是我以外的东西。到处都听到它叫做“破折号”的声音是如此刺耳。尤其是因为同一个人不知道实际破折号是什么... grr。
underscore_d 2015年

是的,但是“破折号”一词含混不清的说法并不能成立。“减号”也模棱两可;参见U + 2212。
李斯特先生,2015年

33

我从未见过有人在数学场景之外说“减” (意思是减),“破折号”是适当的,并且会更常见,这不是Unix的事情,这只是这个人。但是,我们确实还有其他术语,例如#!发音为shebang

这是指向当前用于ASCII的行话文件的链接以及它们的说法


5
我非常喜欢“ octothorpe” #,感谢INTERCAL,我只能将Python %运算符视为“ mingle”。jargon.net/jargonfile/a/ASCII.html
msw

17
其实夏普这个角色- #是哈希(不是每个人关心;))。
Maciej Piechotka 2010年

9
@xeno它,虽然它的拼写家当
迈克尔Mrozek

10
至少我们不再将#符号称为“磅”。我喜欢octothorpe'cos,然后我可以将C#发音为cock-toe-thorpe,由于某种原因,它使MS fanbois烦恼:)
gbjbaanb 2010年

4
等等,我们不称它为“磅”吗?
belacqua 2011年

24

我在AT&T System V天(1990年)学习Unix,过程如下:rm -rf /bin/nessus-fetch.rc的发音是:arr emm minus arr eff斜杠bin斜杠nessus破折号获取点rc,其中减号是参数指示符,连字符是目录或文件名的一部分

我听见有很多的减法,通常这些破破烂烂的人是新手,发音为noo bees :-)

战争


4
我也+1:为论点减号,为所有其他
Bill B 2010年

5
+1是,完全是;这个网站上发生了什么事?“减号”是我遇到的唯一发音。

3
是的,除了-r在文件上使用是愚蠢的,特别-f是如果您犯了错误,则很危险。例如rm -rf /bin/ nessus-fetch.rc。糟糕!
Wodin 2011年

1
-1好吧,您可能声称自己已经在身边,并不是说您不在,或者我认为您在撒谎,但是您没有提供书面证明的事实意味着您的答案是基于自然主观。(确实是“ WAR”。)
ixtmixilix 2012年

1
呸混合减去一起冲(!“ - ”不冲看它......如cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen
彼得·

12

好吧,对我来说,“减号”更为自然,可能是因为我不是英语为母语的人。我的母语是匈牙利语,并且minus = minusz,但连字符= valasztojel,显然“ minus”更容易和更短。但是我住在罗马尼亚,并且减号=减号,但是连字符和破折号甚至没有一个单词的翻译,因此使用起来会很繁琐。


9
在这里是德国:减号=减号,破折号=斯特里奇,连字符= Bindestrich。减号是国际性的。
用户未知

2
+1俄语中的“连字符”([defis])词虽然不超过“减号”,但听起来“口语”不足以用于普通语音。“连字符”的另一个口语单词是[chortochka],但由于含糊不清而不好用:它的意思是“短线”,因此可以解释为“斜杠”或“反斜杠”或“竖线”等。单词[tire](“破折号”)仅与用作标点符号的长破折号相关联。因此,我觉得最好的发音方式是说“减号”。没错:可能我从其他Unix人士那里学到了“减”,并且很高兴有这样的好方法。
imz-伊万·扎哈拉里舍夫(Ivan Zakharyaschev)2011年

1
同样,连字符(俄语中的[defis])通常出现在单词的“内部”,以连接单词的两个部分。因此,当您发音“单词”(该选项)的开头时说“连字符”是不自然的。我可以想象我的发音是“ apt-get”为“ apt defis get”或“ apt get cherez defis”(=“带有连字符”);后者是谈论俄语中某些复合词的拼写的常用方法。
imz-伊万·扎哈拉里舍夫(Ivan Zakharyaschev)2011年

@imz:后者是否曾经在Unix上下文中使用?
迪洪·杰维斯

@TikhonJelvis:当您需要拼写一个单词(可能是Unix命令)之类的单词时,可以在任何情况下使用它,并且某些特性无法通过正常发音反映出来(连字符不会发音,因此您可以添加注释)宣告(伪)单词组后再进行讨论。我看不出有任何理由反对在Unix上下文中使用这种方式。我可以用后一种方式拼写“ apt-get”,为什么要问?
imz-伊万·扎哈拉里舍夫(Ivan Zakharyaschev)2011年

9

我唯一使用或听到减号而不是破折号的情况是使用chmod删除特定权限时,例如

chmod -x script.sh

因为所考虑的动作可以视为减法。


5
很好的一点。我很想评论说我总是对自己说“破折号”,但是在阅读了您的回答后,我意识到这是个例外。在这种情况下,我会说“ C H mod减去x脚本点S H
Josh 2010年

1
@Josh,我刚刚意识到这comm是另一个例外。你“减2”跳过了仅在文件2,等线
通配符

7

我使用Unix和GNU / Linux已经有很多年了,并且谈论了很多命令行操作员,而我从未听说过有人说“减号”。实际上,我们甚至通常不会说“破折号”。如果我正在与某人交谈,并且上下文很明确,那么我只说该选项的字母即可;用你的例子

rm -rf /

将被发音为“ arr em arr eff斜线”。当然,我通常不会告诉别人该怎么做,所以它更像是

rm -rf *

发音为“ arr em arr eff star”。有时候我会说破折号

sudo yum -y update

我会说:“ soo生面团百分百为什么更新。”


10
“ arr em arr eff斜线。”?Unix是否适合盗版?:-)))scnr ;-)
echox 2010年

1
朋友,朋友!grrrrep!
乔尔·亚当森

1
“ s面团”?如,sudo make me some dough so you can bake bread for my sandwich
乔什2010年

@Joel-啊,我在上面做了这个精确的观察(在另一条评论中)。'rmrf'不需要破折号,技巧,大头钉,缺点等。它是简写,对于不应该运行的人来说,具有不可抗拒性是一个加号。
belacqua 2011年

2
@Mikel我说“ sudo”为“ pseudo”,因为我并不是超级用户。
乔尔·J·亚当森

7

我相信我有资格担任Unix负责人,并且说破折号是因为它的音节少于负号或连字符。

我想读rm -rf /为“朗姆酒斜线”,但我担心几乎没人会理解我。


2
同意-实际上,当与了解Unix知识的人们交谈时,我通常甚至会省略“破折号”。即,“ rmrf斜杠”。没有人不知道这意味着什么,不需要运行命令。
belacqua 2011年

5

我主要是Windows家伙(请在这里不要对我投反对票!),我通常会说“连字符”。

我想这只是您与您打交道的人的经历以及他们的成长方式。没有关于他们的计算机背景的具体信息。


1
-1表示“连字符”。我从不这么说;-)(实际上说hypen没有意义,在两个词之间使用连字符)
Josh 2010年

1
等待,但是Windows为什么要使用-?每当我切换到Windows时(不幸的是,它发生),我总是会大喊大叫,因为实际上只有少数程序-用于定界参数。Windows使用/,它甚至更有趣(实际上,我什至不记得。也许是{forward slash})。命令提示符 - 。
Blender 2010年

@Blender斜杠!!!嗯,我主要是Windows,但我不时喜欢使用几乎每个操作系统。这个问题出现在热门列表中,所以我以为我会回答!
wilhil 2010年

@Josh从技术上讲,它是连字符/减号,因此这两个都比正确dash
PSkocik

5

实际上,很多人都说“ 大头钉”。(我现在正在观看Hak5视频,主持人一直在说“ tack”。)

其他较常见的发音是“破折号”和“连字符”。

我从没听过Unix Linux的人在命令行上下文中说过“减”。


1
作为对策,我听说过“减号”,“破折号”,甚至(很少)听到“连字符”,但从未听过“ tack”。
蒂洪·耶维斯

在行话文件中,“ dak”被列为罕见的变体。我从没真正听到过。
6:49

@greyfade您来自哪里,从未听过他们说减号的地方,这是迄今为止最常见和最传统的?是这些unix家伙,还是主要是Windows家伙,仅将其用于* nix(路由,虚拟化,raspberry pi等)所需的一两个东西?
彼得

5

可以说是“ arr em减去arr ef斜线”,而不是“ arr em dash arr ef斜线”。

为什么是这样?

我认为这可能与地区性或年龄相关性最为重要。当我在Uni时,每个人都说减号。...但是到那时,所有键盘的右侧都有一个数字键盘,带有+-* / etc。


1
叹气...所以我无意中显示了我的年龄。
埃里克·史密斯

4

我参加了Red Hat的三个Linux课,三个讲师中的两个在命令行中引用连字符时专门使用了“ tack”一词。另一位讲师说他使用“破折号”,因为他不想通过使用“打点”来混淆我们。

联合鞭毛程序中,我们了解到“ tack”是一个军事术语,是“ Tackline”(用于连接船对船信号的标志)的缩写,在书面代码中用连字符表示:

“大头钉是指大约6英尺长的短绳;确切的长度取决于所用旗帜的大小。大头钉被传送和说成大头钉,并写成破折号(连字符)“-”。避免歧义。它将信号或数字组分开,如果不分开的话,它们可能传达出与预期含义不同的含义。”

就个人而言,我发现“ tack”一词更为有效,因为它说起来或思考都很快。像“破折号”一样,大头钉只是一个音节。但是,正如其他人指出的那样,“破折号”在技术上是不正确的,因为它实际上是两个大头钉或连字符“-”。


2

从1987年左右开始,我就一直在UNIX(BSD,SunOS,Solaris,IRIX,Unicos,Linux)的Unix中工作(在美国(美国)的几个地方),几乎一直听到“-”字符称为破折号。我自己通常会说破折号。一个例外是说“ kill -9”:我只听到“ kill减去9”。我不知道为什么会这样,但这是我的经验。我还注意到,对于某些高科技产品,各个地区的用语确实存在明显不同。它引起了悲伤(被认为是愚蠢的,因为不知道什么是什么(我自己以及其他人))和很多笑声。-广义上讲,更少的音节通常需要更少的认知处理来获得理解。


1

在Windows上,许多命令行选项是/(例如dir /?),因此说破折号可能很容易与斜杠混淆。。。这就像Windows上许多安装了有用的unix-y命令行工具的命令一样-我忘了哪个使用/和哪个使用-!


0

在某些情况下,命令行+和-绝对是用来表示某些东西的减法或加法,例如

diff -w

要么

emacs +30

2
怎样diff -w的情况下-应该指出减法?
Michael Mrozek

1
diff -w file-a file-b给出两个文件之间的差异而无需考虑空格。

0

我很惊讶这里没有一个明确的答案。有人应该进行一些历史性的摸索,并弄清楚这一点。“减号”或“破折号”传统从何处开始?好论文主题:-)

我在一家公司的操作系统中包含BSD主要部分(可能是Apple)的一群内核黑客中说了“减号”。我总是发现它比破折号更容易脱落。

如果我的文件名中带有“-”,则永不称其为负号,而将其称为破折号。因此,我可以轻松区分命令的参数部分和文件名部分之间的对话。

在shell命令中包含算术表达式非常罕见,因此似乎不太可能与数学混淆。

根据这里的其他答案,听起来像是老式UNIX专家的人,或者像我自己迷恋于老式UNIX专家的人,更喜欢说“减号”。因此,我怀疑这里有一个有趣的历史故事。


0

我认为这里的主要原因是因为您实际上确实需要使用减号(-Unicode 2212)来指定选项。

rm命令不会拾取N破折号(unicode 2013)。

我不确定这在Windows中如何工作。

但是我看到有经验的Linux用户说破折号而不是减号(我以前常常自己犯错误),主要是受Monzy的歌曲“ kill dash破九”的影响

更多关于破折号和减号之间的区别


2
您不能使用Uniode减U + 2212来引入选项。您必须使用ASCII连字符减U + 002D。
Celada'2

rm −i dpkg.log(减)给出rm: cannot remove ‘−i’: No such file or directory
GKFX

0

我知道这是一个旧线程,但是我在其他任何地方都没有看到这种解释。

我对Linux和c ++相当陌生,有人告诉我“ -j”是“ tack j”。不加解释,我认为它的意思是“固定”。像在命令末尾加上“ j”一样。即使-j 10

因此,“ tack”不一定是“-”(我通常称其为负号)的意思,而是通过使用“-”完成的动作。

当然不是说这在历史上是正确的,但我可能不是唯一以此方式使用它的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.