Почему Unix-головы говорят «минус»?

56

Пару недель назад я посетил беседу о Git от кого-то, кто, кажется, был из Windows. Я сказал «казалось», потому что он продолжал говорить «тире» при обращении к параметрам командной строки. Затем я вспомнил кое-что, что мне показалось любопытным в первые годы изучения Linux; то есть при обращении к опциям резидентные Unix-головы всегда говорили «минус». Это:

rm -rf /var/tmp/bogus/junk

Будет сказано «arr em минус arr ef», а не «arr em dash arr ef».

Почему это?

Эрик Смит
источник
63
действительно? мои друзья в Unix всегда говорят «тире»
phunehehe
5
Есть интересный пост Coding Horror о произношении символов (в контексте программирования, хотя -это один из освещенных вопросов)
Майкл Мрозек
15
Я всегда говорил «минус» в этом контексте, но я начал использовать Unix в System III (хотя это само по себе ничего не значит). Это имеет смысл для меня, так как есть варианты, которые начинаются с плюса в некоторых программах. Кроме того, [акцент Крокодила Данди] это не тире, это тире - (эм) или это: - (en)
Деннис Уильямсон
15
Я никогда не слышал minusраньше, но мне нравится превосходное чувство, которое сопровождает это. Я перевожу свой жаргон наminus
Стефан
7
Не имеет отношения к минусовой вещи: может быть, изменить свой пример на что-то другое? Есть немало новичков в UNIX, которые слепо копируют и вставляют все, что находят ... особенно, если нет никаких намеков на то, что он должен делать.
Марсель Стимберг

Ответы:

73

Две из самых важных книг по UNIX, «Среда программирования UNIX» и «Язык программирования C», обозначают это как минус.

Среда программирования Unix, стр. 13 :

Опции следуют за именем команды в командной строке и обычно состоят из начального знака минус ( -) и одной буквы.

Язык программирования C, 2-е издание, стр. 116 :

Общепринятым соглашением для программ на C в системах UNIX является то, что аргумент, начинающийся со знака минус, вводит необязательный флаг.

Многие пользователи UNIX прочитали одну или обе эти книги, поэтому, возможно, взяли терминологию оттуда.


Называть его минусом имеет смысл, потому что набираемый вами символ - это дефис-минус ( -). Тир ( ) больше.

Причина, по которой слово «минус», а не «дефис», вероятно, двояка:

  1. меньше людей знают, что такое дефис
  2. некоторые утилиты принимают опции, начиная с +, поэтому логично думать о плюсах и минусах

Кроме того, многие программы обработки текста преобразуют двойной дефис-минус ( --) в тире ( ), поэтому, говоря «тире», когда вы имеете в виду «минус», можно привести к путанице при обсуждении длинных опций GNU, например --help.

Mikel
источник
10
+1 за все ссылки с минимальным пухом. Тире - это не один символ - это более расплывчатый термин для любой группы похожих символов, включая дефисы, тире, тире и т. Д.
jw013
+1 за дефис . как мало кто знает, что это за основной символ пунктуации, мне не под силу. слышать, как это называется «тире», везде так трогательно. тем более что одни и те же люди не знают, что такое на самом деле ... гр.
underscore_d
Да, но аргумент о том, что слово «тире» неоднозначно, не выдерживает критики. «минус» тоже неоднозначен; см. U + 2212.
Мистер Листер
33

Я никогда не видел, чтобы кто-то говорил «минус» вне математического сценария (что означает вычитание), «тире» подходит и будет более распространенным, это не вещь Unix, это был только этот человек. У нас действительно есть другой жаргон, например #!, произносится как шебанг .

Вот ссылка на текущий файл жаргона для ASCII и как они говорят

xenoterracide
источник
5
Я очень люблю "octothorpe" #и благодаря INTERCAL я могу думать только об %операторе Python как о "смешанном". jargon.net/jargonfile/a/ASCII.html
2010 г.,
17
На самом деле диез этот символ - , #является хэш (не то, что кто -то заботится;)).
Мацей Печотка
9
@xeno Это так, хотя это пишется Шебанг
Майкл Мрозек
10
по крайней мере, мы больше не называем символ # символом «фунт». Мне нравится octothorpe, потому что тогда я могу произносить C # как талисман, который по какой-то причине раздражает фанатов MS :)
gbjbaanb
4
Подождите, мы не называем это «фунт»?
Белаква
24

Я изучал Unix в Системе AT & T V дней (1990), и это выглядело так: rm -rf /bin/nessus-fetch.rc был написан как: был индикатором аргумента, а тире был частью каталога или имени файла

Я слышал много минусов в свое время, и, как правило, люди из тире были новичками, произносится как пчелы :-)

WAR

DEV
источник
4
+1 мне тоже: минус за аргументы, тире за все остальное
Билл Б
5
+1 да, именно; что происходит на этом сайте? «Минус» - единственное произношение, с которым я столкнулся.
3
Да, кроме того, что использование -rфайла является глупым и особенно -fопасным, если вы допустили ошибку. например rm -rf /bin/ nessus-fetch.rc. К сожалению!
Водин
1
-1 Хорошо, возможно, вы утверждали, что были рядом, и я не говорю, что вы не были, или что я думаю, что вы лжете, но тот факт, что вы не предоставили письменную ссылку, означает, что ваш ответ природа субъективная. («Война» действительно.)
ixtmixilix
1
хуй за смешивание минус и тире вместе ("-" не тире! посмотрите это ... например. cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen )
Питер
12

Ну, для меня «минус» более естественный, вероятно, потому что я не являюсь носителем английского языка. Мой родной язык на венгерском, и минус = минус, но дефис = valasztojel, очевидно, «минус» проще и короче. Однако я живу в Румынии, и минус = минус, но дефис и тире даже не имеют перевода в одно слово, поэтому их было бы очень утомительно использовать.

Паткос Чаба
источник
9
Здесь, в Германии: минус = минус, тире = Strich, дефис = Bindestrich. Минус международный.
пользователь неизвестен
2
+1 В русском языке слово «дефис» - [defis] - хотя и не длиннее, чем «минус», но звучит недостаточно «разговорно», чтобы его можно было использовать в обычной речи. Другое разговорное слово для «дефиса» - [chortochka], но оно не очень хорошо из-за некоторой двусмысленности: оно означает «короткую линию», поэтому может быть интерпретировано как «косая черта», «обратная косая черта», «труба» или что-то еще. Слово [шина] («тире») ассоциируется только с длинным тире, используемым в качестве знака пунктуации. Поэтому я чувствую, что самый хороший способ произнести это - сказать «минус». И правда: вероятно, я узнал «минус» от других людей Unix, и был рад, что есть такой хороший способ.
imz - Иван Захарящев
1
Кроме того, дефис ([defis] на русском языке) обычно встречается «внутри» слова, чтобы соединить две части слова. Поэтому неестественно говорить «дефис», когда вы произносите начало «слова» (опция). Я могу представить, что я произношу «apt-get» как «apt defis get» или «apt get cherez defis» (= «с дефисом внутри»); последнее является обычным способом говорить о написании некоторых сложных слов на русском языке.
imz - Иван Захарящев
@imz: Последняя версия когда-либо использовалась в контексте Unix?
Тихон Джелвис
@TikhonJelvis: его можно использовать в любом случае, когда вам нужно написать что-то вроде слова (это может быть команда Unix), и есть некоторые особенности, которые не отражаются в обычном произношении (дефис не произносится, поэтому вы добавляете комментарий об этом после произнесения группы (псевдо) слов). Я не вижу причин, чтобы этот способ использовался в контексте Unix. Я мог бы записать "apt-get" последним способом ... Почему ты спрашиваешь?
imz - Иван Захарящев
9

Единственный раз, когда я использую или слышу минус вместо тире, это когда я использую chmod для удаления определенного разрешения, например

chmod -x script.sh

В качестве рассматриваемого действия можно считать вычитание.

alanc10n
источник
5
Очень хороший момент. Мне было приятно комментировать, что я всегда сам говорю «тире», но прочитав ваш ответ, я понял, что это исключение. В этом случае я бы сказал: « C H mod минус x сценарий S H »
Джош
1
@ Джош, я только что понял, что commэто еще одно исключение . Вы «минус 2», чтобы пропустить строки, которые есть только в файле 2 и т. Д.
Wildcard
7

Я много лет использовал Unix и GNU / Linux и много говорил о операторах командной строки, и я никогда не слышал, чтобы кто-нибудь говорил «минус». На самом деле, мы даже обычно не говорим «тире». Если я разговариваю с кем-то и контекст понятен, я просто произнесу буквы варианта; используя ваш пример

rm -rf /

будет произнесено "arr em arr eff slash." Конечно, это не то, что я обычно говорю кому-то, как это сделать, так что это было бы больше похоже на

rm -rf *

произносится как "Arr Em Arr Eff звезды". Иногда я говорю тире, как

sudo yum -y update

Я бы сказал "Су тесто ням тире, зачем обновлять".

Джоэл Дж. Адамсон
источник
10
"arr em arr eff slash."? Unix для пиратов? :-))) scnr ;-)
echox
1
arr em arr starrr, приятель! grrrrep!
Джоэл Дж. Адамсон
1
"су тесто"? Как в sudo make me some dough so you can bake bread for my sandwich,?
Джош
@ Джоэл - ах, я сделал это точное наблюдение выше (в другом комментарии). «rmrf» не нуждается в тире, взломах, галочках, минусах и т. д. Это сокращение и непостижимость для тех, кто не должен его запускать, это плюс.
Белаква
2
@Mikel Я говорю "sudo" как "псевдо", потому что я не супер пользователь.
Джоэл Дж. Адамсон
7

Я считаю, что я квалифицируюсь как глава Unix, и я говорю тире, потому что в нем меньше слогов, чем минус или дефис.

Я хотел бы прочитать rm -rf /как "слез рома ерш", но я боюсь, что почти никто не поймет меня.

RedGrittyBrick
источник
2
Согласен - на самом деле, когда я общаюсь с людьми, которые знакомы с Unix, я обычно опускаю даже «черту». То есть "rmrf slash". Никому, кто не знает, что это значит, не нужно запускать команду.
Белаква
5

Я в основном парень из Windows (не голосуйте за меня здесь!), И я обычно говорю «дефис».

Я полагаю, это просто ваш опыт общения с людьми, с которыми вы имеете дело, и то, как они воспитывались. Ничего конкретного в их компьютерном фоне.

wilhil
источник
1
-1 для "дефиса". Я никогда не называю это так ;-) (На самом деле говорить, что перенос не имеет смысла, между двумя словами используется дефис)
Джош
1
Подождите, но зачем Windows использовать -? Всякий раз, когда я переключаюсь на Windows (и, к сожалению, это происходит), на меня всегда кричат, потому что только несколько программ фактически используют -для разделения аргументов. Windows использует /, что еще веселее (на самом деле, я даже не помню. Может быть, это {forward slash}). Командная строка
Блендер
@ Блендер, это косая черта !!! да, я в основном Windows, но мне нравится время от времени использовать практически все ОС. Этот вопрос попал в список популярных, поэтому я просто решил ответить на него!
2010 года
@Josh Технически, это символ дефиса / минуса, поэтому любой из этих двух правил более правильный, чем dash.
PSkocik
5

Многие люди на самом деле говорят « тэкс ». (Я смотрю видео Hak5 прямо сейчас, и ведущий продолжает говорить «тэкс».)

Другими более распространенными произношениями являются «тире» и «дефис».

Я никогда не слышал, чтобы парень из Unix или Linux говорил «минус» в контексте командной строки.

greyfade
источник
1
В качестве контрапункта я слышал «минус», «тире» и, возможно, (редко) «дефис», но никогда не «гвоздь».
Тихон Джелвис
«дак» указан как редкий вариант в файле жаргона. Хотя я никогда не слышал этого.
Внуаз
@greyfade, откуда ты, где ты никогда не слышал, чтобы они говорили «минус», что является наиболее распространенным и традиционным? И эти парни из Unix, или в первую очередь парни из Windows, которые просто используют его для одной или двух вещей, для которых им нужен * nix (маршрутизация, виртуализация, Raspberry Pi и т. Д.)?
Питер
5

Будет сказано "arr em минус arr ef slash", а не "arr em dash arr e slash".

Почему это?

Я думаю, что это может быть региональным или возрастным, чем что-либо еще. Все сказали минус, когда я был в универе. ... но с этого момента все клавиатуры имели цифровую клавиатуру справа, которая имела + - * / и т. д.

Джеймс Антилл
источник
1
Вздох ... так что я случайно показал свой возраст.
Эрик Смит
4

Я посещал три класса Linux от Red Hat, и два из трех инструкторов использовали термин «тэкс» исключительно при упоминании дефисов в командной строке. Другой инструктор сказал, что он использовал «черту», ​​потому что он не хотел вводить нас в заблуждение, используя «галс».

Из процедур Союзнических флагштоков мы узнаем, что слово «гвоздь» - это военный термин, сокращенный от «Тэклайн» (используется для соединения флагов для передачи сигналов между кораблями) и представлен в виде дефиса в письменном коде:

«Tackline - это длина фала приблизительно 6 футов в длину; точная длина зависит от размера используемых флагов. Tackline передается и произносится как прихватка и записывается как тире (дефис)» - «. Он используется для Избегайте двусмысленности. Он отделяет сигналы или группы цифр, которые, если их не разделять, могли бы передать значение, отличное от того, которое предполагалось

Лично я нахожу слово «тэкс» более эффективным, потому что оно очень быстро сказать или подумать. Как и «тире», такт - это только один слог. Однако, как отмечали другие, «тире» технически неверен, потому что на самом деле это два такта или дефиса «-».

teancum144
источник
2

Я работал в Unix примерно с 1987 года (BSD, SunOS, Solaris, IRIX, Unicos, Linux) в нескольких местах по всей стране (США) и почти всегда слышал символ «-», называемый тире. Я сам обычно говорю тире. Единственное исключение - «убить -9»: я слышал это только как «убить минус 9». Я не знаю, почему это так, но это был мой опыт. Я также заметил, что разные регионы действительно имеют разные языки для некоторых технических вещей. Это вызвало горе (мысль глупая, потому что я не знаю, что что-то есть (я и другие)) и много смеха. - В общем, меньшее количество слогов обычно требует меньше когнитивной обработки для достижения понимания.

айсберг
источник
1

В Windows многие параметры командной строки - это / (например, dir /?), поэтому сказать, что dash может быть слишком легко перепутан с slash ...., что очень похоже на множество команд в Windows, когда вы установили некоторые полезные инструменты командной строки unix-y - Я постоянно забываю, какие из них используют / а какие используют -!

gbjbaanb
источник
0

Есть случаи, когда командная строка + и - определенно предназначена для обозначения вычитания или сложения чего-либо, например

diff -w

или же

emacs +30

источник
2
Как diff -wобстоят дела, когда -предполагается указывать вычитание?
Майкл Мрозек
1
diff -w file-a file-bдает разницу между двумя файлами без учета пробелов.
0

Я удивлен, что здесь нет однозначного ответа. Кто-то должен сделать какое-то историческое написание и выяснить это. Где и когда начались традиции «минус» или «тире»? Хорошая тема диссертации :-)

Я взял слово «минус» от группы хакеров ядра, с которыми я работал в определенной компании, в которой была ОС, включающая основные части BSD (это было бы яблоко). Я всегда обнаруживал, что это споткнулось о язык намного легче, чем черта.

Если бы у меня было имя файла с «-», я бы никогда не назвал его минусом, я бы назвал его тире. Таким образом, я легко различаю в аргументах часть команды и часть имени файла.

Довольно редко включать арифметические выражения в команды оболочки, поэтому путаница с математикой кажется маловероятной.

Основываясь на других ответах здесь, кажется, что люди, которые являются старыми гуру UNIX или, как я, общались со старыми гуру UNIX, больше любят говорить «минус». Таким образом, мое подозрение, что здесь есть интересная историческая история.

Саймон Вудсайд
источник
0

Я думаю, что основная причина здесь в том, что вам действительно нужно использовать символ минуса ( -Unicode 2212) для указания опций.

N-тире ( Unicode 2013) не будет поднята командой rm.

Я не уверен, как это работает в Windows.

Но я видел опытных пользователей Linux, которые говорили dash вместо минус (и я сам делал ошибку), в основном под влиянием песни «kill dash nine» Монзи

Подробнее о разнице между тире и минус петь

Дженс Тиммерман
источник
2
Вы не можете использовать Uniode минус U + 2212, чтобы ввести опции. Вы должны использовать дефис-минус ASCII U + 002D.
Селада
rm −i dpkg.log(минус) дает rm: cannot remove ‘−i’: No such file or directory.
GKFX
0

Я знаю, что это старая ветка, но я больше нигде не видел этого объяснения.

Я довольно новичок в Linux и C ++, и мне сказали, что "-j" - это "tack j". Без объяснения причин я предположил, что это означает «прихватить». Как прикрепить «j» в конце команды. т.е. сделать -j 10

Так что «тэкс» - это не обязательно слово «-» (которое я обычно называю минусом), а скорее действие, выполняемое с помощью «-».

Конечно, я не говорю, что это исторически правильно, но я не единственный, кто использует это таким образом.

litforall
источник