Unix kafaları neden “eksi” diyor?


56

Birkaç hafta önce Git ile ilgili bir konuşmaya Windows arkasından gelmiş gibi görünen biri tarafından katıldım. Komut satırı seçeneklerine atıfta bulunurken "kısa çizgi" demeye devam ettiği için "sanki" dedim. Daha sonra Linux öğrenmenin ilk günlerinde meraklı bulduğum bir şeyi hatırladım; yani, seçeneklere atıfta bulunurken, yerleşik Unix kafaları her zaman "eksi" derdi. Yani:

rm -rf /var/tmp/bogus/junk

"Arr em eksi arr ef" yerine "arr em eksi arr ef" ifadesinin kullanılması gerektiği söylenebilir.

Bu neden?


63
Gerçekten mi? unix arkadaşlarım her zaman "dash"
phunehehe

5
Sembol telaffuzlarıyla ilgili ilginç bir Kod Yazma Korkusu mesajı var (programlama bağlamında, -bunlardan biri olmasına rağmen )
Michael Mrozek

15
Bu bağlamda daima "eksi" demiştim, ancak Sistem III'te Unix kullanmaya başladım (kendi başına bir anlam ifade etmiyor). Bazı programlarda artı ile başlayan seçenekler olduğu için bu bana çok mantıklı geliyor. Ayrıca, [Timsah Dundee aksanı] bu bir çizgi değil, bu bir çizgi - (em) ya da bu: - (en)
Dennis Williamson

15
Daha önce hiç duymadım minus, ama onunla olan üstün duyguyu seviyorum. Dilimi değiştiriyorumminus
Stefan

7
"Eksi" olayıyla ilgisi yok: Belki örneğini başka bir şeyle değiştirebilirsin? Özellikle ne yapması gerektiğine dair bir ipucu yoksa, bulduğu her şeyi kör bir şekilde kopyalayıp yapıştıran UNIX yenileri vardır.
Marcel Stimberg

Yanıtlar:


73

En önemli UNIX kitaplarından ikisi, UNIX Programlama Ortamı ve C Programlama Dili , eksi olarak adlandırılır.

Unix Programlama Ortamı, sayfa 13 :

Seçenekler komut satırındaki komut adını takip eder ve genellikle ilk eksi işaretinden ( -) ve tek bir harften oluşur.

C Programlama Dili, 2. Baskı, Sayfa 116 :

UNIX sistemlerindeki C programları için ortak bir kural, eksi işaretiyle başlayan bir argümanın isteğe bağlı bir bayrak getirmesidir.

Birçok UNIX kullanıcısı bu kitaplardan birini veya her ikisini de okumuş olacak, bu yüzden terminolojiyi oradan almış olabilir.


Bunu eksi olarak adlandırmak mantıklıdır, çünkü yazdığınız karakter bir tire-eksi ( -) işlevidir .
Bir çizgi ( ) daha uzun.

"Tire" yerine "eksi" deme sebebi muhtemelen iki yönlüdür:

  1. daha az kişi, kısa çizginin ne olduğunu bilir
  2. Bazı programlar başlangıçtan itibaren seçenekleri kabul eder +, bu yüzden artı ve eksi hakkında düşünmek mantıklı

Ayrıca, birçok kelime işlem programı, bir çift tire eksi ( --) 'yi bir tire ( )' ye dönüştürür, bu nedenle "eksi" derken "kısa çizgi" demek, örneğin GNU uzun seçeneklerini tartışırken karışıklığa yol açabilir --help.


10
Minimum kabartmalı tüm referanslar için +1. Çizgi, tek bir karakter değildir - tire, em çizgi, çizgi, vb.
Gibi

Kısa çizgi için +1 . bu kadar az insan bu temel noktalama işaretinin ne olduğunu nasıl biliyor? her yerde "çizgi" denilen işitme çok ızgara. özellikle de aynı insanlar gerçek bir çizginin ne olduğunu bilmediklerinden ... grr.
underscore_d

Evet, ama "çizgi" kelimesinin belirsiz olduğu iddiası su tutmaz. "eksi" de belirsizdir; U + 2212'ye bakınız.
Bay Lister

33

Matematik senaryosunun dışında "eksi" diyen hiç kimseyi görmedim (çıkarmak anlamına gelir), "kısa çizgi" uygun ve daha yaygın olacak, bu bir Unix olayı değil, bu sadece bu kişiydi. Yine de başka bir dilimiz var, mesela Shebang gibi#! telaffuz ediliyor .

İşte ASCII için geçerli Jargon Dosyasına ve bunların nasıl söylendiğine bir link


5
"Octothorpe" 'a çok düşkünüm ve INTERCAL #sayesinde Python %operatörünü sadece "karıştırmak" olarak düşünebiliyorum . jargon.net/jargonfile/a/ASCII.html
msw

17
Aslında keskin olan bu karakterdir - , #karma (kimsenin umrunda değil;).
Maciej Piechotka 18:10

9
Yazıldığı oluyor rağmen @xeno Öyle, shebang
Michael Mrozek

10
en azından artık # sembolünü "pound" diye çağırmıyoruz. Ben octothorpe 'çünkü o zaman ben C # MS fanbois bazı nedenlerden rahatsız ediyor horoz toe-thorpe olarak söyleyebilirim :)
gbjbaanb

4
Bekle, 'pound' demiyoruz?
belacqua,

24

AT&T System V günlerinde (1990) Unix'i öğrendim ve şöyle devam etti: rm -rf /bin/nessus-fetch.rc şöyle söylendi: arr emm eksi arr ef slash bin slash nessus dash alma nokta rc eksi nerede bağımsız değişken göstergesiydi ve kısa çizgi bir dizinin veya dosya adının parçasıydı

Benim zamanımda bir sürü eksi duydum ve genellikle çizgi halkı yenilerdi, noo arıları telaffuz edildi :-)

SAVAŞ


4
Beni de +1: argümanlar için eksi, başka her şey için çizgi
Bill B

5
+1 Evet, kesinlikle; bu sitede neler oluyor? "Eksi" karşılaştığım tek telaffuz.

3
Evet, -rbir dosyayı kullanmak dışında aptalca ve özellikle birlikte -fbir hata yaparsanız tehlikelidir. örn rm -rf /bin/ nessus-fetch.rc. Hata!
Wodin

1
-1 Pekâlâ, etrafta olduğunuzu iddia etmiş olabilirsiniz ve olmadığınızı söylemiyorum ya da yalan söylediğinizi sanmıyorum, ancak yazılı bir başvuru sağlayamadığınız gerçeği, cevabınızın tabi öznel. ('WAR' gerçekten.)
ixtmixilix

1
eksi ve birlikte çizgi karıştırmak için yuck ("-" çizgi değil! yukarı bak ... örneğin. cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen )
Peter

12

Eh, benim için "eksi" daha doğal, çünkü muhtemelen anadili İngilizce değilim. Macarca'daki ana dilim ve eksi = eksi = eksi = ama tire = valasztojel, açıkça "eksi" daha kolay ve kısa. Ancak Romanya'da yaşıyorum ve eksi = eksi, ancak tire ve kısa çizgi tek kelimelik çevirilere bile sahip değil, bu yüzden kullanımı çok sıkıcı olacaktı.


9
Burada Almanya'da: eksi = Eksi, tire = Strich, tire = Bindestrich. Eksi uluslararasıdır.
kullanıcı bilinmeyen

2
+1 Rusçada, "tire" kelimesi - [defis] - "eksi" den daha uzun olmasa da, normal konuşmada kullanılacak kadar "sıradan" gelmiyor. "Kısa çizgi" için bir başka konuşma sözcüğü [chortochka] 'dır, ancak bazı belirsizliklerden dolayı iyi değildir: "kısa çizgi" anlamına gelir, bu nedenle "eğik çizgi" veya "ters eğik çizgi" veya "boru" veya başka bir şey olarak yorumlanabilir. [Tire] ("tire") kelimesi yalnızca noktalama işareti olarak kullanılan uzun bir tire ile ilişkilidir. Bu yüzden, bunları telaffuz etmenin en güzel yolunun "eksi" demek olduğunu hissediyorum. Ve doğru: Muhtemelen diğer eksi insanlardan "eksi" öğrendim ve böyle güzel bir yol olduğu için mutluydum.
imz - Ivan Zakharyaschev

1
Ayrıca, bir sözcüğün iki bölümünü birbirine bağlamak için genellikle bir kelimenin ("defis] Rusça) bir kelimenin" "içinde" olması gerekir. Bu nedenle, bir "kelimenin" (seçenek) başlangıcını söylerken "tire" demek doğal değildir. "Apt-get" kelimesini "apt defis get" veya "apt get cherez defis" (= "içinde kısa çizgi ile") olarak telaffuz ettiğimi hayal edebiliyorum; Sonuncusu, Rusça'da bazı karma kelimelerin yazılışlarından bahsetmenin olağan yoludur.
imz - Ivan Zakharyaschev

@ imz: Son sürüm Unix bağlamında hiç kullanılıyor mu?
Tikhon Jelvis,

@TikhonJelvis: bir kelime gibi birşeyi hecelemeniz gerektiğinde herhangi bir durumda kullanılabilir (bir Unix komutu olabilir) ve normal telaffuz tarafından yansıtılmayan bazı özellikler vardır (kısa çizgi telaffuz edilmez, bu nedenle bir yorum eklersiniz. (sözde) grubunu açıkladıktan sonra bu konuda. Unix bağlamında kullanılmak için bu şekilde herhangi bir sebep görmüyorum. İkinci yoldaki "apt-get" kelimesini heceleyebilirim ... Neden soruyorsun?
imz - Ivan Zakharyaschev

9

Çizginin yerine eksi kullandığım veya duyduğum tek zaman, belirli bir izni kaldırmak için chmod kullanırken

chmod -x script.sh

Söz konusu eylem çıkarma olarak kabul edilebilir olarak.


5
Çok iyi bir nokta. Ben her zaman kendime "kısa çizgi" dediğimi söylemeye gong oldum ama cevabınızı okuduktan sonra bunun istisna olduğunu anladım. Bu durumda " C H mod eksi x script dot S H "
Josh

1
@Josh, sadece bunun commbaşka bir istisna olduğunu fark ettim . Sadece "2 eksi 2" deki satırları atlamak için "eksi 2"
joker

7

Uzun yıllardır Unix ve GNU / Linux kullandım ve çok fazla komut satırı operatörleri hakkında çok fazla konuştum ve kimsenin "eksi" dediğini hiç duymadım. Aslında, genellikle "tire" bile demiyoruz. Biriyle konuşuyorsam ve bağlam açıksa, sadece seçeneğin harflerini söyleyeceğim; örneğini kullanarak

rm -rf /

"arr em arr eff slash" olarak telaffuz edilirdi. Tabii ki, bu genelde birisine nasıl yapılacağını söylediğim bir şey değil.

rm -rf *

"arr em arr eff star" olarak telaffuz edildi. Bazen çizgi gibi

sudo yum -y update

"Çörek hamuru yum çizgi neden güncelleme." Derim.


10
"arr em arr eff slash."? Korsanlar için Unix? :-))) scnr ;-)
echox

1
arr em arr starrr, dostum! grrrrep!
Joel J. Adamson

1
"Çörek hamuru"? Olduğu gibi sudo make me some dough so you can bake bread for my sandwich?
Josh,

@Joel - ah, yukarıdaki bu kesin gözlemi yaptım (başka bir yorumda). 'rmrf' herhangi bir kısa çizgi, hack, tack, eksi vb. istemez.
belacqua,

2
@Mikel Ben gerçekten "süper" değilim çünkü "sahte" olarak "sudo" diyorum.
Joel J. Adamson

7

Bir Unix kafası olarak nitelendirdiğime inanıyorum ve kısa çizgi diyorum çünkü eksi veya kısa çizgilerden daha az heceye sahip.

rm -rf /"Rum ruff slash" olarak okumak isterdim ama neredeyse kimsenin beni anlamadığından korkuyorum.


2
Anlaştık - aslında, Unix şeylerini bilen insanlarla konuşurken, genellikle 'çizgi'yi bile ihmal ediyorum. Yani, "rmrf slash". Bunun ne anlama geldiğini bilen hiç kimsenin emri çalıştırması gerekmez.
belacqua,

5

Ben esas olarak bir Windows erkeğiyim (Bana burada oy verme!) Ve genellikle "kısa çizgi" derim.

Sanırım sadece uğraştığınız insanlarla olan deneyiminiz ve onların nasıl ortaya çıktığıdır. Onların bilgisayar arka planı hakkında özel bir şey yok.


1
"Kısa çizgi" için -1 . Asla öyle demiyorum ;-) (Aslında, hipen anlam ifade etmiyor, iki kelime arasında bir tire kullanılır)
Josh

1
Bekle ama Windows neden kullansın ki -? Ne zaman ne zaman Windows'a geçsem (ve ne yazık ki, bu oluyor), her zaman bağırdım, çünkü sadece bir avuç program aslında -argümanları sınırlandırmak için kullanıyor . Windows kullanıyor /, ki bu daha da eğlenceli (aslında, hatırlamıyorum bile. Belki de {forward slash}). Komut istemi--.
Blender

@ Blender bu eğik çizgi !!! hah, ben çoğunlukla Windows'um ama zaman zaman her işletim sistemini hemen hemen kullanmayı seviyorum. Bu soru popüler listede ortaya çıktı, ben de cevaplayacağımı düşündüm!
wilhil 10'10

@Josh Teknik olarak, bu tire / eksi karakteri olduğundan, bu ikisinden daha doğrudur dash.
PSkocik

5

Pek çok insan aslında " başa çıkma " diyor . (Şu anda bir Hak5 videosu izliyorum ve ev sahibi "tack" demeye devam ediyor.)

Diğer daha yaygın telaffuzlar "kısa çizgi" ve "kısa çizgi" dir.

Bir Unix veya Linux çalışanının komut satırı bağlamında "eksi" dediğini hiç duymadım .


1
Bir karşı nokta olarak, "eksi", "kısa çizgi" ve belki (nadiren) "kısa çizgi" duydum, ancak asla "çakışma" duymadım.
Tikhon Jelvis,

"dak" jargon dosyasında nadir görülen bir değişken olarak listelenir. Aslında hiç duymadım.
12'de

@greyfade, nerelisiniz, hiçbir zaman eksi dediklerini hiç duymadığınız, hangisi en yaygın ve geleneksel? Ve bu unix adamları mı, yoksa sadece ihtiyaç duydukları bir ya da iki şey için kullanan windows pencereleri mi (yönlendirme, sanallaştırma, ahududu pi, vs.)?
Peter

5

"Arr em eksi arr ef eğik çizgi" yerine "arr em eksi arr ef eğik çizgi" olduğu söylenebilir.

Bu neden?

Bunun bölgesel olabileceğini ya da her şeyden daha fazla yaşa bağlı olduğunu düşünüyorum. Uni'deyken herkes eksi dedi. ... ancak o zaman tüm klavyelerin sağında + - * / etc olan sayısal bir tuş takımı vardı.


1
Sigh ... ben istemeden yanlışlıkla yaşımı gösterdim.
Eric Smith

4

Red Hat'ten üç Linux dersine katıldım ve bu üç eğitmenden ikisi komut satırındaki tireleri işaret ederken "tack" terimini kullandılar. Diğer eğitmen "kısa çizgi" kullandığını söyledi çünkü "tack" kullanarak bizi şaşırtmak istemedi.

Gönderen Müttefik Flaghoist Usul , biz (gemi-gemi sinyalizasyon için bayrakları bağlamak için kullanılır) ve yazılı kodda kısa çizgi olarak temsil edilir kelime "tack" "Tackline" kısaltmasıdır askeri bir terim olduğunu öğrenmek:

"Bir dikiş hattı uzunluğu yaklaşık 6 feet uzunluğunda bir yarık uzunluğudur; tam uzunluk kullanılan bayrakların boyutuna bağlıdır. belirsizlikten kaçının. Ayrılmazsa amaçlanandan farklı bir anlam taşıyabilecek sinyalleri veya sayı gruplarını ayırır. "

Şahsen, "takma" kelimesini daha verimli buluyorum çünkü söylemesi ya da düşünmesi çok hızlı. "Çizgi" gibi, çakmak sadece bir hecedir. Ancak, diğerlerinin de belirttiği gibi, "çizgi" ifadesi teknik olarak yanlıştır, çünkü aslında iki ya da tire işareti "-" dır.


2

1987'den bu yana unix'te çalışıyorum (BSD, SunOS, Solaris, IRIX, Unicos, Linux) ülkenin çeşitli yerlerinde (ABD) ve neredeyse her zaman bir çizgi olarak adlandırılan "-" karakterini duydum. Ben kendim genellikle kısa çizgi diyorum. Bunun bir istisnası "kill -9" derken: Bunu sadece "eksi 9 öldür" olarak duydum. Neden böyle olduğunu bilmiyorum ama bu benim deneyimimdi. Ayrıca, bazı bölgelerin bazı teknik şeyler için farklı dillere sahip olduğunu da farkettim. Kedere neden oldu (aptalca düşündü, çünkü bir şeyin ne olduğunu bilmiyorum (kendim ve diğerleri) ve çok fazla gülüyor - Genel anlamda, daha az heceli, anlama için genellikle daha az bilişsel işlem gerektirir.


1

Windows'da, birçok komut satırı seçeneği / (örn. dir /?) Olduğundan, çizgi üzerinde çizgi ile kolayca karıştırılabilir. Bu, bazı yararlı unix-y komut satırı araçlarını yüklediğinizde Windows'taki birçok komut gibidir. - Hangisini / hangisini kullandığını unutmaya devam ediyorum -!


0

Komut satırı + ve - 'nin kesinlikle bir şeyin çıkarılmasını veya eklenmesini göstermesi gereken durumlar vardır.

diff -w

veya

emacs +30

2
Çıkarmayı göstermesi gereken diff -wbir durum nasıl -?
Michael Mrozek

1
diff -w file-a file-bboşluk dikkate alınmadan iki dosya arasındaki farkı verir.

0

Burada kesin bir cevap olmadığına şaşırdım. Birileri bazı tarihsel hecelemeler yapmalı ve bunu çözmeli. "Eksi" veya "çizgi" gelenekleri nerede ve ne zaman başladı? Tez konusu iyi :-)

BSD'nin ana bölümlerini (elma olacak) içeren bir işletim sistemine sahip belirli bir şirkette birlikte çalıştığım bir grup çekirdek korsanından "eksi" diyerek aldım. Her zaman onun dilden daha kolay açıldığını gördüm.

İçinde "-" olan bir dosya ismim varsa onu asla eksi olarak adlandırmazdım, çizgi olarak kullanırdım. Böylece bir komutun argümanları ile dosya adı kısmı arasındaki sohbeti kolayca ayırt edebilirim.

Kabuk komutlarına aritmetik ifadeler eklemek oldukça nadirdir, bu yüzden matematikle karışıklık pek mümkün görünmemektedir.

Buradaki diğer cevaplara dayanarak, eski UNIX guruları olan ya da kendimi eski UNIX guruları ile takmış olduğum gibi, "eksi" demeye benziyor gibi geliyor. Dolayısıyla burada ilginç bir tarihi hikaye olduğu yönündeki şüphem.


0

Buradaki ana neden, -seçenekleri belirlemek için gerçekten eksi bir karakter ( unicode 2212) kullanmanız gerektiğidir.

N-dash ( unicode 2013) rm komutu ile algılanmayacaktır.

Bunun pencerelerde nasıl çalıştığından emin değilim.

Ancak , zamanaşımına uğrayan linux kullanıcılarının eksi yerine kısa çizgi (ve ben de hatayı kendim yapardım) demiş olduklarını gördüm.

Bir çizgi ve eksi şarkı arasındaki fark daha fazla


2
Seçenekleri tanıtmak için Uniode eksi U + 2212'yi kullanamazsınız. ASCII kısa çizgi eksi U + 002D kullanmanız gerekir.
Celada

rm −i dpkg.log(eksi) verir rm: cannot remove ‘−i’: No such file or directory.
GKFX

0

Bunun eski bir konu olduğunu biliyorum, ancak bu açıklamayı başka hiçbir yerde görmedim.

Ben Linux ve c ++ için oldukça yeni ve "-j" nin "tack j" olduğu söylendi. Hiçbir açıklama yapmadan, "tack on" ile aynı anlama geldiğini varsaydım. Komutun sonuna bir "j" sokmak gibi. yani, -j 10 yapın

Bu yüzden, "çakmak" mutlaka "-" (ki normalde eksi olarak adlandırırdım) için bir kelime değil, "-" kullanarak yapılan bir eylemdir.

Elbette, bunun tarihsel olarak doğru olduğunu söylemiyorum, ancak bu şekilde kullanan tek kişi olmayabilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.