Dlaczego głowy uniksowe mówią „minus”?

56

Kilka tygodni temu uczestniczyłem w rozmowie na temat Gita przez kogoś, kto wydawał się pochodzić z Windows. Mówię „wydawało się”, ponieważ powtarzał „myślnik”, odnosząc się do opcji wiersza poleceń. Potem przypomniałem sobie coś, co mnie zainteresowało na początku nauki Linuksa; to znaczy, odnosząc się do opcji, rezydentne głowy Uniksa zawsze mówiły „minus”. To jest:

rm -rf /var/tmp/bogus/junk

Zostałoby powiedziane „arr em minus arr ef” w przeciwieństwie do „arr em dash arr ef”.

Dlaczego to?

Eric Smith
źródło
63
naprawdę? moi przyjaciele
uniksowi
5
Istnieje ciekawy post Codro Horror na temat wymowy symboli (w kontekście programowym, choć -jest jednym z tych omówionych)
Michael Mrozek
15
W tym kontekście zawsze mówiłem „minus”, ale zacząłem używać Uniksa w Systemie III (nie znaczy to, że samo w sobie to nic nie znaczy). Ma to dla mnie idealny sens, ponieważ w niektórych programach są opcje zaczynające się na plus. Poza tym [Crocodile Dundee accent] to nie kreska, to kreska - (em) lub to: - (en)
Dennis Williamson
15
Nigdy wcześniej o tym nie słyszałem minus, ale podoba mi się wspaniałe uczucie z tym związane. Zmieniam mój język naminus
Stefan,
7
Nie ma związku z „minusem”: może zmienić przykład na coś innego? Istnieje całkiem sporo nowicjuszy w systemie UNIX, którzy na ślepo kopiują i wklejają wszystko, co znajdą ... szczególnie, jeśli nie ma żadnej wskazówki, co ma zrobić.
Marcel Stimberg

Odpowiedzi:

73

Dwie najważniejsze książki UNIX, środowisko programistyczne UNIX i język programowania C określają je jako minus.

Środowisko programowania w Uniksie, strona 13 :

Opcje następują po nazwie polecenia w wierszu polecenia i zwykle składają się z początkowego znaku minus ( -) i pojedynczej litery.

Język programowania C, wydanie drugie, strona 116 :

Powszechną konwencją dla programów C w systemach UNIX jest to, że argument rozpoczynający się znakiem minus wprowadza opcjonalną flagę.

Wielu użytkowników systemu UNIX przeczytało jedną lub obie z tych książek, więc prawdopodobnie wzięli od nich terminologię.


Nazywanie go minusem ma sens, ponieważ wpisywany znak jest łącznikiem minus ( -). Myślnik ( ) jest dłuższy.

Powód wypowiedzenia „minus” zamiast „łącznika” jest prawdopodobnie dwojaki:

  1. mniej osób wie, co to jest myślnik
  2. niektóre narzędzia akceptują opcje zaczynające się od +, więc logiczne jest myślenie o plusie i minusie

Ponadto wiele programów do edycji tekstu konwertuje podwójny łącznik minus ( --) na myślnik ( ), więc powiedzenie „myślnik”, gdy masz na myśli „minus”, może prowadzić do zamieszania podczas omawiania długich opcji GNU, np --help.

Mikel
źródło
10
+1 dla wszystkich odniesień przy minimalnym puchu. Dash nie jest pojedynczą postacią - jest to raczej niejasny termin dla dowolnej grupy podobnie wyglądających postaci, w tym łączników, myślników, myślników itp.
jw013
+1 dla łącznika . jak niewiele osób wie, czym jest ten podstawowy symbol interpunkcyjny, jest poza mną. słysząc, jak to się nazywa „doskakiwanie” wszędzie, jest tak niesamowita. tym bardziej, że ci sami ludzie nie wiedzą, co to jest kreska… grr.
underscore_d
Tak, ale argument, że słowo „myślnik” jest dwuznaczne, nie ma znaczenia. „minus” też jest niejednoznaczny; patrz U + 2212.
Pan Lister
33

Nigdy nie widziałem, żeby ktoś mówił „minus” poza scenariuszem matematycznym (co oznacza odejmowanie), „myślnik” jest odpowiedni i będzie bardziej powszechny, to nie jest sprawa uniksowa, to była tylko jedna osoba. Mamy inny żargon choć np #!jest wyraźniejszy shebang .

Oto link do aktualnego pliku żargonu dla ASCII i ich wypowiedzi

ksenoterracid
źródło
5
Bardzo lubię „oktotorpe” #i dzięki INTERCAL mogę myśleć o %operatorze Pythona tylko jako „mieszać się”. jargon.net/jargonfile/a/ASCII.html
msw
17
Właściwie ostry jest ten znak - , #to hash (nie żeby nikogo to obchodziło;)).
Maciej Piechotka,
9
@xeno Jest, choć to orkisz shebang
Michał Mrozek
10
przynajmniej nie nazywamy już symbolu # funtem. Lubię octothorpe 'bo wtedy mogę wymówić C # jako cock-toe-thorpe, co z jakiegoś powodu denerwuje fanów MS :)
gbjbaanb
4
Czekaj, nie nazywamy tego „funtem”?
belacqua
24

Nauczyłem się Uniksa w dniach AT&T System V (1990) i wyglądało to tak: rm -rf /bin/nessus-fetch.rc było wypowiadane jako: arr emm minus arr eff slash bin slash nessus dash fetch dot rc gdzie minus był wskaźnikiem argumentu, a myślnik był częścią nazwy katalogu lub pliku

Słyszałem wiele minusów w moim czasie i zwykle ludzie, którzy byli odważni, byli początkującymi, wyraźnymi pszczołami noo :-)

WOJNA

dev
źródło
4
Daj mi także +1: minus za argumenty, myślnik za wszystko inne
Bill B
5
+1 Tak, dokładnie; co się dzieje na tej stronie? „Minus” to jedyna wymowa, jaką spotkałem.
3
Tak, z wyjątkiem tego, że użycie -rw pliku jest głupie, a zwłaszcza -fjest niebezpieczne, jeśli popełnisz błąd. np rm -rf /bin/ nessus-fetch.rc. Ups!
Wodin
1
-1 W porządku, mogłeś twierdzić, że byłeś w pobliżu i nie mówię, że nie byłeś, lub że myślę, że kłamiesz, ale fakt, że nie dostarczyłeś pisemnego odniesienia oznacza, że ​​twoja odpowiedź brzmi natura subiektywna. (Rzeczywiście „WOJNA”)
ixtmixilix
1
fuj do mieszania minus i kreska razem („-” to nie kreska! spójrz w górę ... np. cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen )
Peter
12

Cóż, dla mnie „minus” jest bardziej naturalny, prawdopodobnie dlatego, że nie jestem native speakerem angielskiego. Mój język ojczysty w języku węgierskim i minus = minusz, ale myślnik = valasztojel, oczywiście „minus” jest łatwiejszy i krótszy. Mieszkam jednak w Rumunii i minus = minus, ale myślnik i myślnik nie mają nawet tłumaczeń jednowyrazowych, więc używanie ich byłoby bardzo nużące.

Patkos Csaba
źródło
9
Tutaj w Niemczech: minus = minus, kreska = struś, łącznik = Bindestrich. Minus jest międzynarodowy.
użytkownik nieznany
2
+1 W języku rosyjskim słowo „łącznik” - [defis] - choć nie dłużej niż „minus”, ale nie brzmi wystarczająco „potocznie”, aby można go było używać w normalnej mowie. Innym potocznym słowem „myślnik” jest [chortochka], ale nie jest dobre z powodu niejasności: oznacza „krótką linię”, więc może być interpretowane jako „ukośnik” lub „ukośnik odwrotny” lub „potok” lub cokolwiek innego. Słowo [opona] („myślnik”) jest powiązane tylko z długim myślnikiem używanym jako znak interpunkcyjny. Uważam więc, że najmilszym sposobem wymawiania tego jest powiedzenie „minus”. I prawda: prawdopodobnie nauczyłem się „minus” od innych ludzi z Uniksa i cieszyłem się, że jest taki fajny sposób.
imz - Ivan Zakharyaschev
1
Ponadto łącznik ([defis] w języku rosyjskim) występuje zwykle „wewnątrz” słowa, aby połączyć dwie części słowa. Zatem nienaturalne jest mówienie „łącznik”, kiedy wymawia się początek „słowa” (opcja). Mogę sobie wyobrazić, jak wymawiam „apt-get” jako „apt defis get” lub „apt get cherez defis” (= „z myślnikiem w środku”); ten drugi sposób jest zwykłym sposobem mówienia o pisowni niektórych złożonych słów w języku rosyjskim.
imz - Ivan Zakharyaschev
@imz: Czy ta ostatnia wersja jest kiedykolwiek używana w kontekście Uniksa?
Tikhon Jelvis,
@TikhonJelvis: można go użyć w każdym przypadku, gdy trzeba przeliterować coś takiego jak słowo (może to być polecenie uniksowe), a niektóre cechy nie są odzwierciedlone w normalnej wymowie (łącznik nie jest wymawiany, więc dodajesz komentarz o tym po wymowie grupy (pseudo) słów). Nie widzę powodu, dla którego można by tego używać w kontekście Uniksa. Mógłbym przeliterować „apt-get” w ten drugi sposób ... Dlaczego pytasz?
imz - Ivan Zachharyaschev,
9

Jedyny raz, gdy używam lub słyszę minus zamiast kreski, to kiedy używam chmod do usunięcia pewnych uprawnień, np

chmod -x script.sh

ponieważ dane działanie można uznać za odejmowanie.

alanc10n
źródło
5
Bardzo dobra uwaga. Miałem ochotę komentować, że sam zawsze mówię „myśl”, ale po przeczytaniu twojej odpowiedzi zdałem sobie sprawę, że to wyjątek. W tym przypadku powiedziałbym „ C H mod minus x skrypt kropka S H
Josh
1
@Josh, właśnie zdałem sobie sprawę, że commto kolejny wyjątek . Możesz „minus 2”, aby pominąć wiersze znajdujące się tylko w pliku 2 itd.
Wildcard 15.04.16
7

Używam Uniksa i GNU / Linuksa od wielu lat i mówiłem głośno o operatorach linii poleceń i nigdy nie słyszałem, żeby ktokolwiek powiedział „minus”. W rzeczywistości nawet nie mówimy „myślnik”. Jeśli rozmawiam z kimś, a kontekst jest jasny, wymówię litery opcji; na twoim przykładzie

rm -rf /

wymawia się „arr em arr eff slash”. Oczywiście nie jest to coś, co zwykle mówię komuś, jak to zrobić, więc byłoby bardziej

rm -rf *

wymawia się „arr em arr eff star”. Czasami mówię myślnik

sudo yum -y update

Powiedziałbym „soo, mniam mniam, po co aktualizować”.

Joel J. Adamson
źródło
10
„arr em arr eff slash.”? Unix dla piratów? :-))) scnr ;-)
echox
1
arr em arr starrr, kolego! grrrrep!
Joel J. Adamson,
1
„soo ciasto”? Jak w sudo make me some dough so you can bake bread for my sandwich,?
Josh
@Joel - ah, dokładnie to zrobiłem powyżej (w innym komentarzu). „rmrf” nie potrzebuje kresek, hacków, haków, minusów itp. Jest to skrót, a niezrozumiałość dla tych, którzy nie powinni go uruchamiać, jest plusem.
belacqua
2
@Mikel Mówię „sudo” jako „pseudo”, ponieważ tak naprawdę nie jestem superużytkownikiem.
Joel J. Adamson
7

Wierzę, że kwalifikuję się jako głowa Uniksa i mówię myślnik, ponieważ ma on mniej sylab niż minus lub myślnik.

Chciałbym przeczytać rm -rf /jako „sluff rum ruff”, ale obawiam się, że prawie nikt mnie nie zrozumie.

RedGrittyBrick
źródło
2
Zgadzam się - w rzeczywistości rozmawiając z ludźmi znającymi się na Uniksie, zwykle nawet pomijam „myślnik”. Tj. „Rmrf slash”. Nikt, kto nie wie, co to znaczy, nie musi uruchamiać polecenia.
belacqua
5

Jestem głównie facetem z Windows (nie głosuj tutaj!) I zazwyczaj mówię „myślnik”.

Myślę, że to tylko twoje doświadczenie z ludźmi, z którymi masz do czynienia i jak zostali wychowani. Nic konkretnego w tle ich komputera.

wilhil
źródło
1
-1 dla „łącznika”. Nigdy tego tak nie nazywam ;-) (Właściwie mówienie hipenzytu nie ma sensu, myślnik jest używany pomiędzy dwoma słowami)
Josh
1
Poczekaj, ale dlaczego Windows miałby z tego korzystać -? Ilekroć przełączam się na system Windows (i niestety tak się zdarza), zawsze mnie krzyczą, ponieważ tylko garstka programów faktycznie używa -ograniczania argumentów. Windows używa /, co jest jeszcze bardziej zabawne (właściwie nawet nie pamiętam. Może to jest {forward slash}). Wiersz polecenia--.
Blender
@Blender to slash !!! ehh, głównie Windows, ale od czasu do czasu lubię używać prawie każdego systemu operacyjnego. To pytanie pojawiło się na liście popularnych, więc pomyślałem, że na nie odpowiem!
wilhil
@Josh Technicznie rzecz biorąc, jest to łącznik / znak minus, więc każdy z tych dwóch znaków jest bardziej poprawny niż dash.
PSkocik
5

Wiele osób mówi „ hals ”. (W tej chwili oglądam wideo Hak5, a gospodarz wciąż mówi „tack”).

Innymi popularniejszymi wymowami są „myślnik” i „myślnik”.

Nigdy nie słyszałem, żeby facet z Unixem lub Linuksem mówił „minus” w kontekście wiersza poleceń.

greyfade
źródło
1
Jako kontrapunkt słyszałem „minus”, „myślnik” i może (rzadko) „myślnik”, ale nigdy „hals”.
Tikhon Jelvis,
„dak” jest wymieniony jako rzadki wariant w pliku żargonu. Ale tak naprawdę nigdy tego nie słyszałem.
wnoise
@greyfade, skąd jesteś, gdzie nigdy nie słyszałeś, by mówili „minus”, co jest zdecydowanie najbardziej popularne i tradycyjne? I czy są to faceci unixowi, czy przede wszystkim faceci Windowsa, którzy używają go tylko do jednej lub dwóch rzeczy, do których potrzebują * nix (routing, wirtualizacja, raspberry pi itp.)?
Peter
5

Można powiedzieć „arr em minus arr ef slash”, w przeciwieństwie do „arr em dash arr ef slash”.

Dlaczego to?

Myślę, że to może być bardziej regionalne lub związane z wiekiem niż cokolwiek innego. Wszyscy mówili minus, kiedy byłem w Uni. ... ale w tym momencie wszystkie klawiatury miały klawiaturę numeryczną, po prawej stronie, która miała + - * / itp.

James Antill
źródło
1
Westchnienie ... więc niechcący pokazałem swój wiek.
Eric Smith
4

Uczęszczałem na trzy klasy Linuksa od Red Hata, a dwóch z trzech instruktorów użyło terminu „tack” wyłącznie w odniesieniu do łączników w linii poleceń. Drugi instruktor powiedział, że użył „kreski”, ponieważ nie chciał nas mylić, używając „halsu”.

Z Procedur Aliantów Flaghoist dowiadujemy się, że słowo „tack” to termin wojskowy, który jest skrótem od „Tackline” (używany do łączenia flag w celu sygnalizacji statek-statek) i jest reprezentowany jako łącznik w kodzie pisanym:

„Linia halsowa to długość fału o długości około 6 stóp; dokładna długość zależy od rozmiaru używanych flag. Linia halsowa jest transmitowana i wymawiana jako hals i jest zapisywana jako myślnik (łącznik)” - „. unikaj dwuznaczności. Oddziela sygnały lub grupy cyfr, które, jeśli nie zostaną rozdzielone, mogą mieć inne znaczenie niż zamierzone ”.

Osobiście uważam, że słowo „tack” jest bardziej skuteczne, ponieważ bardzo szybko mówi lub myśli. Podobnie jak „myślnik”, tack jest tylko jedną sylabą. Jednak, jak zauważyli inni, „myślnik” jest technicznie niepoprawny, ponieważ w rzeczywistości są to dwa haki lub łączniki „-”.

teancum144
źródło
2

Pracuję w unixie od około 1987 roku (BSD, SunOS, Solaris, IRIX, Unicos, Linux) w kilku miejscach w całym kraju (USA) i prawie zawsze słyszałem znak „-” zwany myślnikiem. Ja sam zwykle mówię myślnikiem. Jednym wyjątkiem jest powiedzenie „zabij -9”: Słyszałem to tylko jako „zabij minus 9”. Nie wiem, dlaczego tak było, ale takie było moje doświadczenie. Zauważyłem również, że różne regiony mają wyraźnie odmienne słownictwo dotyczące niektórych rzeczy technicznych. Wywołało to smutek (myśl głupio, bo nie wiem, co to jest (ja i ​​inni) i dużo śmiechu - Mówiąc ogólnie, mniej sylab zwykle wymaga mniej przetwarzania poznawczego, aby osiągnąć zrozumienie.

Góra lodowa
źródło
1

W systemie Windows wiele opcji wiersza poleceń to / (np. dir /?), Więc powiedzenie dash może zbyt łatwo zostać pomylone z ukośnikiem .... co jest dokładnie tak, jak wiele poleceń w systemie Windows po zainstalowaniu kilku przydatnych narzędzi wiersza polecenia unix-y - Wciąż zapominam, które używają / a które -!

gbjbaanb
źródło
0

Są przypadki, w których linia poleceń + i - zdecydowanie mają oznaczać odjęcie lub dodanie czegoś, na przykład

diff -w

lub

emacs +30

źródło
2
Jak diff -wprzypadek -ma wskazywać odejmowanie?
Michael Mrozek
1
diff -w file-a file-bdaje różnicę między dwoma plikami bez uwzględnienia białych znaków.
0

Dziwi mnie, że nie ma tutaj ostatecznej odpowiedzi. Ktoś powinien zrobić historyczne spelunking i to rozgryźć. Gdzie i kiedy zaczęły się tradycje „minus” lub „myślnik”? Temat dobrej pracy dyplomowej :-)

Zacząłem mówić „minus” od hakerów jądra, z którymi pracowałem w pewnej firmie, która miała system operacyjny, który zawierał główne części BSD (to byłoby jabłko). Zawsze uważałem, że potknął się o język znacznie łatwiej niż kreska.

Jeśli mam nazwę pliku z „-”, nigdy nie nazwałbym tego minusem, nazwałbym to myślnikiem. W ten sposób mogę łatwo rozróżnić w części argumentów polecenia i części nazwy pliku.

Dość rzadko włącza się wyrażenia arytmetyczne do poleceń powłoki, więc pomylenie z matematyką wydaje się mało prawdopodobne.

Opierając się na innych odpowiedziach tutaj, brzmi to tak, jakby ludzie, którzy byli dawnymi guru UNIX lub jak ja kręciły się wokół dawnych guru UNIX, bardziej lubią mówić „minus”. Dlatego podejrzewam, że jest tu ciekawa historia historyczna.

Simon Woodside
źródło
0

Myślę, że głównym powodem jest to, że tak naprawdę naprawdę musisz użyć znaku minus ( -Unicode 2212), aby określić opcje.

N-kreska ( Unicode 2013) nie zostanie odczytana przez polecenie rm.

Nie jestem pewien, jak to działa w systemie Windows.

Ale widziałem doświadczonych użytkowników Linuksa, którzy mówią dash zamiast minus (i sam popełniłem błąd), głównie pod wpływem piosenki Monzy „kill dash nine”

Więcej na temat różnicy między śpiewem a śpiewem minusowym

Jens Timmerman
źródło
2
Nie można użyć Uniode minus U + 2212 do wprowadzenia opcji. Musisz użyć ASCII łącznika minus U + 002D.
Celada,
rm −i dpkg.log(minus) daje rm: cannot remove ‘−i’: No such file or directory.
GKFX
0

Wiem, że to stary wątek, ale nigdzie indziej nie widziałem tego wyjaśnienia.

Jestem całkiem nowy w Linuksie i c ++ i powiedziano mi, że „-j” to „tack j”. Bez wyjaśnienia założyłem, że oznaczało to tack jak w „tack on”. Jak wstawić „j” na końcu polecenia. tzn. make -j 10

Zatem „tack” niekoniecznie oznacza słowo „-” (które normalnie nazwałbym minusem), ale raczej akcję wykonaną za pomocą „-”.

Z pewnością nie mówienie, że jest to historycznie poprawne, ale może nie jestem jedynym, który używa tego w ten sposób.

litforall
źródło