Чому Unix-голови кажуть «мінус»?


56

Пару тижнів тому я відвідував розмову на Git когось, хто, схоже, походить із Windows. Я кажу "здавалося", тому що він постійно говорив "тире", коли згадував параметри командного рядка. Потім я згадав щось, що мені було цікаво в перші дні вивчення Linux; тобто, посилаючись на варіанти, резидентні Unix-голови завжди говорили "мінус". Це:

rm -rf /var/tmp/bogus/junk

Можна сказати, "arr em minus arr ef" на відміну від "arr em dash arr ef".

Чому це?


63
справді? мої друзі з Unix завжди говорять "тире"
phunehehe

5
Є цікава публікація Coding Horror про вимову символів (в контексті програмування, хоча -є однією з охоплених)
Майкл Мрозек

15
Я завжди говорив "мінус" у цьому контексті, але я почав використовувати Unix в System III (не те, що саме по собі нічого не означає). Для мене це має сенс, оскільки в деяких програмах є варіанти, які починаються з плюсу. Крім того, [Крокодил Данді наголос] це не тире, це тире - (em) або це: - (en)
Денніс Вільямсон,

15
Я ніколи раніше не чув minus, але мені подобається чудове почуття, яке йде з цим. Я переключаю своє мовне наminus
Стефан

7
Не пов’язане з "мінусом": Можливо, змінити свій приклад на щось інше? Є досить багато новачків UNIX, які сліпо копіюють і вставляють все, що вони знайдуть ... особливо якщо немає ніякого натяку на те, що він повинен робити.
Марсель Стімберг

Відповіді:


73

Дві найважливіші книги UNIX, середовище програмування UNIX та мова програмування C, обидві називають це мінусом.

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

Параметри слідують імені команди в командному рядку і зазвичай складаються з початкового знаку мінус ( -) та однієї літери.

Мова програмування на C, 2-е видання, стор. 116 :

Загальною умовою для програм C для систем UNIX є те, що аргумент, який починається зі знаку мінус, вводить необов’язковий прапор.

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


Називати це мінусом має сенс, тому що символ, який ви набираєте, є дефісом-мінусом ( -). Тир ( ) більше.

Причина, щоб сказати "мінус", а не "дефіс", ймовірно, двояка:

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

Крім того, багато програм для обробки тексту перетворюють подвійний дефіс-мінус ( --) у тире ( ), тому мовлення "тире", коли ви маєте на увазі "мінус", може призвести до плутанини при обговоренні довгих варіантів GNU, наприклад --help.


10
+1 для всіх посилань з мінімальним пухом. Дефіс - це не один персонаж - це більше розпливчастий термін для будь-якої групи схожих на вигляд персонажів, включаючи дефіси, em-тире, en-тире та ін.
jw013

+1 для дефісу . як так мало людей знає, що це основний символ пунктуації, - поза мною. чути це під назвою "тире" скрізь так решітка. тим більше, що ті самі люди не знають, що таке фактичний тире ... грр.
підкреслюй_d

Так, але аргумент про те, що слово "тире" неоднозначне, не має жодної сили. "мінус" теж неоднозначний; див. U + 2212.
Містер Лістер,

33

Я ніколи не бачив, щоб хтось говорив "мінус" поза математичним сценарієм (маючи на увазі відняття), "тире" підходить і буде більш поширеним, це не річ Unix, це була лише ця одна людина. Однак у нас є інший лінгво, наприклад #!, вимовляється шебанг .

Ось посилання на поточний файл Jargon для ASCII та те, як вони говорять


5
Мені дуже подобається "октоторп", #і завдяки INTERCAL я можу вважати %оператора Python лише "змішуванням". jargon.net/jargonfile/a/ASCII.html
msw

17
Насправді гострим є цей персонаж - , #є хеш (не те, що когось хвилює;)).
Maciej Piechotka

9
@xeno Це, хоча це написано shebang
Michael Mrozek

10
принаймні, ми більше не називаємо символ # фунт. Мені подобається октоторп 'cos, тому я можу вимовити C # як "півень-топ", який чомусь дратує фан-MS:
gbjbaanb

4
Зачекайте, ми не називаємо це "фунтом"?
белаква

24

Я дізнався Unix в AT & T System V днів (1990), і це було так: rm -rf /bin/nessus-fetch.rc говорили так: arr emm мінус arr eff slash bin slash nessus dash fetch dot rc where minus був індикатором аргументу, а тире - частина каталогу або імені файлу

Я чула багато мінусів свого часу, і зазвичай тире люди були новачками, вимовленими ноо бджолами :-)

ВІЙНА


4
+1 також мені: мінус для аргументів, тире на все інше
Білл B

5
+1 Так, саме; що відбувається на цьому сайті? "Мінус" - єдина вимова, з якою я стикався.

3
Так, окрім використання -rу файлі нерозумно і особливо разом із цим -fнебезпечно, якщо ви помилитесь. напр rm -rf /bin/ nessus-fetch.rc. На жаль!
Водін

1
-1 Гаразд, ви, мабуть, заявили, що ви були поруч, і я не кажу, що ви цього не робили, або що я думаю, що ви брешите, але те, що ви не змогли надати письмове посилання, означає, що ваша відповідь є природа суб'єктивна. (Дійсно "ВІЙНА")
ixtmixilix

1
yuck для змішування мінусів і тире разом ("-" не тире! шукайте його ... напр. cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen )
Петро

12

Що ж, для мене "мінус" є більш природним, напевно, тому що я не є носієм англійської мови. Моя рідна мова угорською мовою, і minus = minusz, але дефіс = valasztojel, явно "мінус" простіше і коротше. Однак я живу в Румунії, і мінус = мінус, але дефіс і тире навіть не мають однослівних перекладів, тому їх було б дуже нудно використовувати.


9
Тут, у Німеччині: мінус = Мінус, тире = Стріх, дефіс = Біндестріх. Мінус міжнародний.
користувач невідомий

2
+1 Російською мовою слово "дефіс" - [defis] - хоча і не довше "мінус", але не звучить "розмовно", щоб бути використаним у звичайній мові. Ще одне розмовне слово «дефіс» - [чорточка], але це не добре через деяку неоднозначність: це означає «коротка лінія», тому її можна трактувати як «коса» або «зворотна косої риски», або «труба» чи що завгодно. Слово [шина] ("тире") асоціюється лише з довгим тире, що використовується як розділовий знак. Тому я відчуваю, що найприємніший спосіб вимовити цей матеріал - сказати "мінус". І правда: напевно, я дізнався "мінус" від інших людей Unix, і був радий, що є такий приємний спосіб.
imz - Іван Захарящев

1
Також дефіс ([defis] російською мовою) зустрічається зазвичай «всередині» слова, щоб з'єднати дві частини слова. Тож неприродно вимовляти "дефіс", коли вимовляєш початок "слова" (варіант). Я можу уявити, як я вимовляю "apt-get" як "apt defis get" або "apt get cherez defis" (= "з дефісом всередині"); останній - звичайний спосіб говорити про написання деяких складних слів російською мовою.
imz - Іван Захарящев

@imz: Чи остання версія коли-небудь застосовується в контексті Unix?
Тихон Єлвіс

@TikhonJelvis: його можна використовувати в будь-якому випадку, коли вам потрібно написати щось на зразок слова (це може бути команда Unix), і є деякі особливості, які не відображаються звичайною вимовою (дефіс не вимовляється, тому ви додаєте коментар про це після вимови групи (псевдо) слів). Я не бачу жодної причини, щоб цей спосіб не використовувався в контексті Unix. Я міг би написати "вдало - отримати" останнім способом ... Чому ви питаєте?
imz - Іван Захарящев

9

Єдиний раз, коли я використовую або чую мінус замість тире, - це під час використання chmod для видалення певного дозволу, наприклад

chmod -x script.sh

оскільки дію, про яку йде мова, можна вважати відніманням.


5
Дуже хороший момент. Я був гон, коментуючи, що я завжди кажу "тире", але прочитавши вашу відповідь, я зрозумів, що це виняток. У цьому випадку я б сказав " C H mod мінус x скрипт крапка S H "
Джош

1
@Josh, я щойно зрозумів, що commце ще один виняток . Ви «мінус 2», щоб пропустити рядки, які є лише у файлі 2, тощо
Wildcard

7

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

rm -rf /

було б вимовлено "arr em arr eff slash". Звичайно, це не те, що я звичайно комусь розповідаю, як це зробити, тому було б більше схоже

rm -rf *

вимовляється "arr em arr eff star". Іноді я кажу тире, як

sudo yum -y update

Я б сказав "Soo тісто yum dash чому оновлення".


10
"arr em arr eff slash."? Unix для піратів? :-))) scnr ;-)
відлуння

1
arr em arr starrr, мате! grrrrep!
Джоель Дж. Адамсон

1
"тісто для су"? Як у sudo make me some dough so you can bake bread for my sandwich,?
Джош

@Joel - ах, я зробив це точне спостереження вище (в іншому коментарі). 'rmrf' не потребує тире, злому, мінусів, мінусів і т. д. Це скорочення, і нерозбірливість для тих, хто не повинен його виконувати, є плюсом.
belacqua

2
@Mikel Я кажу "sudo" як "псевдо", тому що я насправді не супер користувач.
Джоель Дж. Адамсон

7

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

Мені хотілося б читати rm -rf /як "руш-штрих", але я боюся, що мене ніхто не зрозуміє.


2
Згоден - насправді, розмовляючи з людьми, які знають речі Unix, я зазвичай опускаю навіть «тире». Тобто, "rmrf коса". Нікому, хто не знає, що це означає, не потрібно запускати команду.
belacqua

5

Я в основному хлопець з Windows (не голосуйте тут!), І я зазвичай кажу "дефіс".

Я думаю, це лише ваш досвід роботи з людьми, з якими ви маєте справу, і як їх виховували. Нічого конкретного щодо їх комп'ютера.


1
-1 для "дефісу". Я ніколи цього не називаю ;-) (Насправді кажучи, що hypen не має сенсу, дефіс використовується між двома словами)
Джош

1
Зачекайте, але навіщо використовувати Windows -? Щоразу, коли я переходжу на Windows (і, на жаль, це трапляється), я завжди кричу, тому що -для обмеження аргументів насправді використовують лише кілька програм . Windows використовує /, що ще веселіше (насправді я навіть не пам'ятаю. Можливо, це {forward slash}). Командний рядок--.
Блендер

@Blender це нарізка !!! Так, я в основному Windows, але мені подобається час від часу використовувати майже кожну ОС. Це питання з’явилося в популярному списку, тому я просто думав, що відповім на нього!
квітня

@Josh Технічно це символ дефісу / мінусу, тому будь-який з цих двох є більш правильним, ніж dash.
PSkocik

5

Багато людей насправді кажуть " пристати ". (Я переглядаю відео Hak5 прямо зараз, і ведучий продовжує говорити "так".)

Інші більш поширені вимови - "тире" та "дефіс".

Я ніколи не чув, щоб хлопець Unix або Linux говорив "мінус" в контексті командного рядка.


1
Як контрапункт, я чув "мінус", "тире" і, можливо, (рідко) "дефіс", але ніколи "липнути".
Тихон Єлвіс

"dak" вказаний як рідкісний варіант у файлі жаргону. Я ніколи насправді цього не чув.
заношувати

@greyfade звідки ти, де ти ніколи не чув, як вони говорять про мінус, який, безумовно, є найпоширенішим і традиційним? І це хлопці з Unix, або в першу чергу хлопці з Windows, які просто використовують його для однієї або двох речей, для яких вони потрібні * nix (маршрутизація, віртуалізація, малиновий пі тощо)?
Петро

5

Можна сказати, "arr em мінус arr ef slash" на відміну від "arr em dash arr ef slash".

Чому це?

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


1
Зітхніть ... значить, я ненароком показав свій вік.
Ерік Сміт

4

Я відвідав три класи Linux від Red Hat, і два з трьох інструкторів використовували термін "tack" виключно під час перегляду дефісів у командному рядку. Інший інструктор сказав, що використовував "тире", тому що не хотів плутати нас, використовуючи "так".

Із процедур "Alloed Flaghoist" ми дізнаємось, що слово "tack" - це військовий термін, який скорочується як "Tackline" (використовується для з'єднання прапорів для сигналізації судна на корабель) і в письмовому коді представлений як дефіс:

"Довжина лінійки - це довжина галоїда приблизно в 6 футів; точна довжина залежить від розміру використовуваних прапорів. Лінія передачі передається та промовляється як так і пишеться як тире (дефіс)" - "Це використовується для уникати неоднозначності. Він розділяє сигнали або групи цифр, які, якщо їх не відокремити, можуть передати інше значення, ніж призначене ".

Особисто мені здається, що слово «пристати» є більш ефективним, оскільки це дуже швидко сказати чи подумати. Як і "тире", такс - це лише один склад. Однак, як зазначають інші, "тире" технічно невірно, оскільки це насправді два прихвати або дефіси "-".


2

Я працюю в Unix приблизно з 1987 року (BSD, SunOS, Solaris, IRIX, Unicos, Linux) в декількох місцях країни (США) і майже завжди чув "-" персонаж, який називається тире. Я сам зазвичай кажу тире. Один виняток - коли говорять "убий -9": я чув лише це як "убий мінус 9". Я не знаю, чому це було так, але це був мій досвід. Я також помітив, що різні регіони мають чітко різний мов для деяких технічних речей. Це викликало горе (думка дурна, тому що я не знаю, що таке (як я, так і інші), і багато сміху. - Взагалі кажучи, менше складів зазвичай вимагає менш пізнавальної обробки для досягнення розуміння.


1

У Windows багато варіантів командного рядка є / (напр. dir /?), Тому, кажучи, тире може бути занадто легко сплутати з косою рискою .... що точно так само, як і багато команд у Windows, коли ви встановили корисні інструменти командного рядка unix-y - Я постійно забуваю, які з них використовують, а які використовують -!


0

Бувають випадки, коли командний рядок + і - безумовно призначений для позначення віднімання чи додавання чогось, наприклад

diff -w

або

emacs +30

2
Як складається diff -wвипадок, коли -передбачається вказівка ​​на віднімання?
Майкл Мрозек

1
diff -w file-a file-bдає різницю між двома файлами, не враховуючи пробіл.

0

Я здивований, що тут немає остаточної відповіді. Хтось повинен зробити деякий історичний роздум і з'ясувати це. Звідки і коли почалися традиції "мінус" чи "штрих"? Хороша тема дипломної роботи :-)

Я вирішив сказати "мінус" з купки хакерів ядер, з якими працював у певній компанії, яка мала ОС, яка включала основні частини BSD (це було б яблуко). Я завжди виявляв, що він відштовхується від мови набагато легше, ніж тире.

Якщо у мене є ім'я файлу з символом "-", я ніколи не називав би його мінусом, я би назвав його тире. Таким чином, я можу легко розмежувати в розмові між частиною аргументів команди і частиною імені файлу.

Досить рідко включати арифметичні вирази в команди оболонок, тому плутанина з математикою здається малоймовірною.

Виходячи з інших відповідей, схожих на те, що люди, які давно гуру UNIX, або я, як я, зависла зі старими гуруми UNIX, більше люблять говорити "мінус". Таким чином, я підозрюю, що тут є цікава історична історія.


0

Я думаю, що головна причина тут полягає в тому, що вам дійсно потрібно використовувати символ мінус ( -unicode 2212), щоб вказати параметри.

Команда rm не буде вибирати N-тире ( unicode 2013).

Я не впевнений, як це працює у Windows.

Але я бачив досвідчених користувачів Linux, які говорять про тире замість мінусу (і я раніше робив помилку), в основному під впливом пісні "убий тире дев'ять" від Monzy

Детальніше про різницю між тире та мінусом співати


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". Не маючи жодних пояснень, я припускав, що це означає виконання так само, як і в "tack on". Наче торкніться "j" в кінці команди. тобто зробіть -j 10

Отже, "tack" - це не обов'язково слово для "-" (яке я б зазвичай називав мінусом), а скоріше дія, здійснена за допомогою "-".

Звичайно, не кажу, що це історично правильно, але я, можливо, не єдиний, хто використовує це таким чином.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.