Tại sao những người đứng đầu Unix lại nói tiếng Nhật trừ đi?


56

Một vài tuần trước, tôi đã tham dự một buổi nói chuyện trên Git bởi một người dường như đến từ nền tảng Windows. Tôi nói "dường như" bởi vì anh ấy cứ nói "gạch ngang" khi đề cập đến các tùy chọn dòng lệnh. Sau đó tôi đã nhớ lại một cái gì đó mà tôi thấy tò mò trong những ngày đầu học Linux; nghĩa là, khi đề cập đến các tùy chọn, những người đứng đầu Unix thường trú luôn nói "trừ". Đó là:

rm -rf /var/tmp/bogus/junk

Sẽ được nói là "Array em minus Array ef" trái ngược với "Array em dash Array ef".

Tại sao lại thế này?


63
có thật không? những người bạn unix của tôi luôn nói "dash"
phunehehe

5
Có một bài viết Kinh dị mã hóa thú vị về cách phát âm biểu tượng (trong ngữ cảnh lập trình, mặc dù -là một trong những bài được đề cập)
Michael Mrozek

15
Tôi đã luôn nói "trừ" trong bối cảnh đó, nhưng tôi đã bắt đầu sử dụng Unix tại System III (không phải cái đó có nghĩa là gì cả). Nó có ý nghĩa hoàn hảo với tôi vì có những lựa chọn bắt đầu bằng dấu cộng trong một số chương trình. Bên cạnh đó, [giọng của Cá sấu Dundee] không phải là dấu gạch ngang, đây là dấu gạch ngang - (em) hoặc này: - (en)
Dennis Williamson

15
Tôi chưa bao giờ nghe nói minustrước đây, nhưng tôi thích cảm giác vượt trội đi cùng với nó. Tôi đang chuyển đổi biệt ngữ của mình sangminus
Stefan

7
Không liên quan đến điều trừ trừ điều: Có thể thay đổi ví dụ của bạn sang thứ khác? Có khá nhiều người mới sử dụng UNIX, những người sao chép và dán một cách mù quáng mọi thứ họ tìm thấy ... đặc biệt là nếu không có gợi ý về những gì nó phải làm.
Marcel Promotionberg

Câu trả lời:


73

Hai trong số những cuốn sách UNIX quan trọng nhất, Môi trường lập trình UNIXNgôn ngữ lập trình C đều coi nó là điểm trừ.

Môi trường lập trình Unix, trang 13 :

Các tùy chọn theo tên lệnh trên dòng lệnh và thường được tạo thành từ một dấu trừ ban đầu ( -) và một chữ cái duy nhất.

Ngôn ngữ lập trình C, tái bản lần 2, trang 116 :

Một quy ước chung cho các chương trình C trên các hệ thống UNIX là một đối số bắt đầu bằng dấu trừ giới thiệu một cờ tùy chọn.

Nhiều người dùng UNIX sẽ đọc một hoặc cả hai cuốn sách này, vì vậy có thể đã sử dụng thuật ngữ từ đó.


Gọi nó là một điểm trừ có ý nghĩa, bởi vì ký tự bạn đang gõdấu gạch nối ( -).
Một dấu gạch ngang ( ) dài hơn.

Lý do để nói "trừ" chứ không phải "gạch nối" có thể có hai mặt:

  1. Ít người biết dấu gạch ngang là gì
  2. Một số tiện ích chấp nhận các tùy chọn bắt đầu bằng +, vì vậy thật hợp lý khi nghĩ đến cộng và trừ

Ngoài ra, nhiều chương trình xử lý văn bản chuyển đổi một dấu gạch ngang kép ( --) thành dấu gạch ngang ( ), do đó, nói "dấu gạch ngang" khi bạn có nghĩa là "trừ" có thể dẫn đến nhầm lẫn khi thảo luận về các tùy chọn dài của GNU, ví dụ --help.


10
+1 cho tất cả các tham chiếu với lông tơ tối thiểu. Dash không phải là một ký tự đơn - đó là một thuật ngữ mơ hồ cho bất kỳ nhóm nào trong số các nhân vật có vẻ ngoài tương tự bao gồm dấu gạch ngang, dấu gạch ngang, dấu gạch ngang, v.v.
jw013

+1 cho dấu gạch nối . làm thế nào rất ít người biết biểu tượng dấu câu cơ bản này là gì, nằm ngoài tôi. Nghe nó gọi là "dash" ở khắp mọi nơi thật là đau đớn. đặc biệt là vì cùng một người không biết một dấu gạch ngang thực sự là gì ... grr.
gạch dưới

Vâng, nhưng lập luận rằng từ "gạch ngang" mơ hồ không giữ được nước. "Điểm trừ" cũng mơ hồ; xem U + 2212.
Ông Lister

33

Tôi chưa bao giờ thấy ai nói "trừ" ngoài kịch bản toán học (có nghĩa là trừ), "dấu gạch ngang" là phù hợp và sẽ phổ biến hơn, đây không phải là một điều Unix, đây chỉ là một người. Chúng tôi có những biệt ngữ khác, ví dụ như #!phát âm là shebang .

Đây là một liên kết đến Tệp Jargon hiện tại cho ASCII và cách họ nói


5
Tôi khá thích "octothorpe" #và nhờ INTERCAL, tôi chỉ có thể nghĩ %toán tử Python là "hòa trộn". jargon.net/jargonfile/a/ASCII.html
msw

17
Trên thực tế sắc nét là nhân vật này - , #là băm (không phải ai cũng quan tâm;)).
Maciej Piechotka

9
@xeno Đó là, mặc dù nó đánh vần là shebang
Michael Mrozek

10
ít nhất chúng ta không còn gọi biểu tượng # là "pound". Tôi thích octothorpe 'cos sau đó tôi có thể phát âm C # là cock-toe-thorpe, điều này gây khó chịu cho các fanbois vì một số lý do :)
gbjbaanb

4
Đợi đã, chúng ta không gọi nó là 'pound'?
belacqua

24

Tôi đã học Unix trong AT & T System V ngày (1990) và nó đã diễn ra như sau: rm -rf /bin/nessus-fetch.rc được nói như sau: là một chỉ báo đối số và dấu gạch ngang là một phần của thư mục hoặc tên tệp

Tôi đã nghe thấy rất nhiều điểm trừ trong thời gian của mình, và thường thì những người bảnh bao là người mới, phát âm là những con ong :-)

CẢNH BÁO


4
+1 tôi cũng vậy: trừ các đối số, gạch ngang cho mọi thứ khác
Bill B

5
+1 Có, chính xác; Điều gì đang xảy ra trên trang web này? "Minus" là cách phát âm duy nhất tôi gặp phải.

3
Có, ngoại trừ việc sử dụng -rtrên một tệp là ngớ ngẩn và đặc biệt -flà nguy hiểm nếu bạn mắc lỗi. ví dụ rm -rf /bin/ nessus-fetch.rc. Úi!
Wodin

1
-1 Được rồi, bạn có thể đã tuyên bố rằng mình đã ở đây và tôi không nói là bạn không, hoặc tôi nghĩ bạn đang nói dối, nhưng thực tế là bạn không cung cấp tài liệu tham khảo bằng văn bản có nghĩa là câu trả lời của bạn là Bản chất chủ quan. ('WAR' thực sự.)
ixtmixilix

1
yuck trộn trừ và dash với nhau (!. "-" không dash nhìn nó ... ví dụ cgi.duke.edu/web/sciwriting/index.php?action=dash_vs_hyphen )
Peter

12

Chà, đối với tôi "trừ" là tự nhiên hơn, có lẽ vì tôi không phải là người nói tiếng Anh bản ngữ. Ngôn ngữ mẹ đẻ của tôi bằng tiếng Hungary và minus = minusz, nhưng hyphen = valasztojel, rõ ràng là "trừ" dễ dàng và ngắn hơn. Tuy nhiên, tôi sống ở Rumani và trừ = trừ, nhưng dấu gạch nối và dấu gạch ngang thậm chí không có bản dịch một từ, vì vậy chúng sẽ rất tẻ nhạt khi sử dụng.


9
Ở đây tại Đức: minus = Minus, dash = Strich, hyphen = Bindestrich. Điểm trừ là quốc tế.
người dùng không xác định

2
+1 Trong tiếng Nga, từ "gạch nối" - [defis] - mặc dù không dài hơn "trừ", nhưng âm thanh "thông tục" không đủ để sử dụng trong lời nói bình thường. Một từ thông tục khác cho "gạch nối" là [chortochka], nhưng nó không tốt vì một sự mơ hồ: nó có nghĩa là "dòng ngắn", vì vậy có thể được hiểu là "gạch chéo" hoặc "dấu gạch chéo ngược" hoặc "đường ống" hoặc bất cứ điều gì. Từ [lốp] ("dấu gạch ngang") chỉ được liên kết với dấu gạch ngang dài được sử dụng làm dấu chấm câu. Vì vậy, tôi cảm thấy rằng cách tốt nhất để phát âm thứ này là nói "trừ". Và đúng: có lẽ tôi đã học được "điểm trừ" từ những người Unix khác và rất vui vì có một cách hay như vậy.
imz - Ivan Zakharyaschev

1
Ngoài ra, một dấu gạch nối ([defis] trong tiếng Nga) thường xuất hiện "bên trong" một từ, để kết nối hai phần của một từ. Vì vậy, thật không tự nhiên khi nói "gạch nối" khi bạn phát âm từ đầu của "từ" (tùy chọn). Tôi có thể tưởng tượng tôi phát âm "apt-get" là "apt defis get" hoặc "apt get cherez defis" (= "có dấu gạch nối bên trong"); sau này là cách thông thường để nói về chính tả của một số từ ghép trong tiếng Nga.
imz - Ivan Zakharyaschev

@imz: Phiên bản sau có bao giờ được sử dụng trong bối cảnh của Unix không?
Tikhon Jelvis

@TikhonJelvis: nó có thể được sử dụng trong mọi trường hợp khi bạn cần đánh vần một từ giống như một từ (có thể là lệnh Unix) và có một số đặc điểm không được phản ánh bởi cách phát âm bình thường (dấu gạch nối không được phát âm, vì vậy bạn thêm nhận xét về nó sau khi phát âm nhóm từ (giả). Tôi không thấy bất kỳ lý do nào chống lại cách này được sử dụng trong bối cảnh Unix. Tôi có thể đánh vần "apt-get" theo cách sau ... Tại sao bạn hỏi?
imz - Ivan Zakharyaschev

9

Lần duy nhất tôi sử dụng hoặc nghe thấy âm thay vì dấu gạch ngang là khi sử dụng chmod để xóa một quyền nhất định, ví dụ:

chmod -x script.sh

như hành động trong câu hỏi có thể được coi là phép trừ.


5
Điểm rất tốt. Tôi đã phải gồng mình nhận xét rằng tôi luôn tự nói "gạch ngang" nhưng sau khi đọc câu trả lời của bạn, tôi nhận ra đây là ngoại lệ. Trong trường hợp này tôi sẽ nói " C H mod trừ x script dot S H "
Josh

1
@Josh, tôi chỉ nhận ra đó commlà một ngoại lệ khác . Bạn "trừ 2" để bỏ qua các dòng chỉ có trong tệp 2, v.v.
Wildcard

7

Tôi đã sử dụng Unix và GNU / Linux trong nhiều năm và nói về các nhà khai thác dòng lệnh rất nhiều và tôi chưa bao giờ nghe ai nói "trừ". Trên thực tế, chúng ta thậm chí không thường nói "dấu gạch ngang". Nếu tôi đang nói chuyện với ai đó và bối cảnh rõ ràng, tôi sẽ chỉ nói các chữ cái của tùy chọn; sử dụng ví dụ của bạn

rm -rf /

sẽ được phát âm là "mảng em mảng eff slash." Tất nhiên, đây không phải là điều tôi thường nói với ai đó cách làm, vì vậy nó sẽ giống như

rm -rf *

phát âm là "mảng em Array eff star." Đôi khi tôi nói dấu gạch ngang, như

sudo yum -y update

Tôi sẽ nói "soo dough yum dash tại sao cập nhật."


10
"mảng em mảng eff slash."? Unix cho cướp biển? :-))) scnr ;-)
echox

1
mảng em mảng starrr, matey! grrrrep!
Joel J. Adamson

1
"bột nhão"? Như trong , sudo make me some dough so you can bake bread for my sandwich?
Josh

@Joel - ah, tôi đã thực hiện quan sát chính xác ở trên (trong một bình luận khác). 'rmrf' không cần dấu gạch ngang, hack, hack, minuses, v.v .. Đó là tốc ký và khó hiểu đối với những người không nên chạy nó là một lợi thế.
belacqua

2
@Mikel Tôi nói "sudo" là "giả" vì tôi không thực sự là siêu người dùng.
Joel J. Adamson

7

Tôi tin rằng tôi đủ điều kiện làm người đứng đầu Unix và tôi nói dấu gạch ngang vì nó có ít âm tiết hơn âm hoặc dấu gạch nối.

Tôi muốn đọc rm -rf /là "rum ruff slash" nhưng tôi sợ hầu như không ai hiểu tôi.


2
Đồng ý - trên thực tế, khi nói chuyện với những người biết điều Unix, tôi thường bỏ qua 'dấu gạch ngang'. Tức là "rmrf chém". Không ai không biết điều đó có nghĩa là không cần phải chạy lệnh.
belacqua

5

Tôi chủ yếu là một anh chàng Windows (Đừng bỏ phiếu cho tôi ở đây!) Và tôi thường nói "gạch nối".

Tôi đoán đó chỉ là kinh nghiệm của bạn với những người bạn đối phó và cách họ được nuôi dưỡng. Không có gì cụ thể về nền máy tính của họ.


1
-1 cho "gạch nối". Tôi không bao giờ gọi nó như vậy ;-) (Thật ra nói hypen không có nghĩa, một dấu gạch nối được sử dụng ở giữa hai từ)
Josh

1
Đợi đã, nhưng tại sao Windows sẽ sử dụng -? Bất cứ khi nào tôi chuyển sang Windows (và thật đáng buồn, nó xảy ra), tôi luôn bị mắng vì chỉ một số ít các chương trình thực sự sử dụng -để phân định các đối số. Windows sử dụng /, điều này thậm chí còn thú vị hơn (thực ra, tôi thậm chí không nhớ. Có lẽ đó là {forward slash}). Dấu nhắc lệnh--.
Máy xay sinh tố

@Blender nó chém !!! ehh, tôi chủ yếu là Windows, nhưng tôi thích sử dụng mọi hệ điều hành theo thời gian. Câu hỏi này xuất hiện trong danh sách phổ biến vì vậy tôi chỉ nghĩ rằng mình sẽ trả lời nó!
wilhil

@Josh Về mặt kỹ thuật, đó là ký tự gạch nối / dấu trừ nên một trong hai ký tự này đúng hơn dash.
PSkocik

5

Rất nhiều người thực sự nói " tack ." (Tôi đang xem video Hak5 ngay bây giờ và người dẫn chương trình tiếp tục nói "tack.")

Các cách phát âm phổ biến khác là "gạch ngang" và "gạch nối".

Tôi chưa bao giờ nghe một anh chàng Unix hay Linux nói "trừ" trong ngữ cảnh dòng lệnh.


1
Như một phản biện, tôi đã nghe "trừ", "gạch ngang" và có thể (hiếm khi) "gạch nối", nhưng không bao giờ "tack".
Tikhon Jelvis

"dak" được liệt kê là một biến thể hiếm trong tệp biệt ngữ. Tôi chưa bao giờ thực sự nghe thấy nó mặc dù.
wnoise

@greyfade bạn đến từ đâu, nơi bạn chưa bao giờ nghe họ nói trừ, đó là điều phổ biến và truyền thống nhất? Và những anh chàng unix này, hay chủ yếu là những anh chàng windows chỉ sử dụng nó cho một hoặc hai thứ họ cần * nix cho (định tuyến, ảo hóa, raspberry pi, v.v.)?
Peter

5

Sẽ được nói là "Array em minus Array ef slash" trái ngược với "Array em dash Array ef slash".

Tại sao lại thế này?

Tôi nghĩ rằng đây có thể là khu vực, hoặc tuổi liên quan nhiều hơn bất cứ điều gì khác. Mọi người đều nói trừ khi tôi ở Uni. ... nhưng tại thời điểm đó, tất cả các bàn phím đều có một phím số, ở bên phải, có + - * / vv.


1
Thở dài ... vì vậy tôi đã vô tình cho thấy tuổi của tôi.
Eric Smith

4

Tôi đã tham dự ba lớp Linux từ Red Hat và hai trong số ba người hướng dẫn đã sử dụng thuật ngữ "tack" độc quyền khi đề cập đến dấu gạch nối trên dòng lệnh. Người hướng dẫn khác nói rằng anh ta đã sử dụng "dấu gạch ngang" vì anh ta không muốn gây nhầm lẫn cho chúng tôi bằng cách sử dụng "tack".

Từ Thủ tục Flaghoist của Đồng minh , chúng tôi biết rằng từ "tack" là một thuật ngữ quân sự viết tắt của "Tackline" (được sử dụng để kết nối các cờ cho tín hiệu từ tàu đến tàu) và được thể hiện dưới dạng gạch nối trong mã viết:

"Một tackline là một chiều dài dài khoảng 6 feet, chiều dài chính xác phụ thuộc vào kích thước của các lá cờ được sử dụng. Tackline được truyền và nói như một tack và được viết dưới dạng dấu gạch ngang (gạch nối)" - ". Nó được sử dụng để tránh sự mơ hồ. Nó phân tách các tín hiệu hoặc các nhóm chữ số, nếu không tách rời, có thể truyền đạt một ý nghĩa khác với ý định đó. "

Cá nhân, tôi thấy từ "tack" hiệu quả hơn vì nó rất nhanh để nói hoặc suy nghĩ. Giống như "dash", tack chỉ có một âm tiết. Tuy nhiên, như những người khác đã chỉ ra, "gạch ngang" là không chính xác về mặt kỹ thuật bởi vì nó thực sự là hai dấu gạch nối hoặc dấu gạch nối "-".


2

Tôi đã làm việc trong unix từ khoảng năm 1987 (BSD, SunOS, Solaris, IRIX, Unicos, Linux) ở một số nơi trên khắp đất nước (Hoa Kỳ) và hầu như luôn nghe thấy ký tự "-" được gọi là dấu gạch ngang. Bản thân tôi thường nói bảnh bao. Một ngoại lệ là khi nói "kill -9": Tôi chỉ nghe nói đó là "kill trừ 9". Tôi không biết tại sao nó lại như thế này nhưng đó là kinh nghiệm của tôi. Tôi cũng đã nhận thấy rằng các khu vực khác nhau có biệt ngữ khác nhau cho một số thứ công nghệ. Nó đã gây ra sự đau buồn (suy nghĩ ngu ngốc vì không biết điều gì là (bản thân tôi cũng như những người khác) và rất nhiều tiếng cười. - Nói rộng ra, ít âm tiết thường đòi hỏi ít xử lý nhận thức hơn để đạt được sự hiểu biết.


1

Trên Windows, nhiều tùy chọn dòng lệnh là / (ví dụ. dir /?) Vì vậy, nói rằng dấu gạch ngang có thể dễ bị nhầm lẫn với dấu gạch chéo .... giống hệt như nhiều lệnh trên Windows khi bạn đã cài đặt một số công cụ dòng lệnh unix-y hữu ích - Tôi tiếp tục quên cái nào sử dụng / và cái nào sử dụng -!


0

Có những trường hợp dòng lệnh + và - chắc chắn có nghĩa là chỉ ra phép trừ hoặc thêm vào một cái gì đó, như

diff -w

hoặc là

emacs +30

2
Làm thế nào là diff -wmột trường hợp -được cho là chỉ ra phép trừ?
Michael Mrozek

1
diff -w file-a file-bđưa ra sự khác biệt giữa hai tệp mà không xem xét khoảng trắng.

0

Tôi ngạc nhiên rằng không có câu trả lời dứt khoát ở đây. Ai đó nên thực hiện một số trò chơi lịch sử và tìm ra điều này. Các truyền thống "trừ" hoặc "gạch ngang" bắt đầu từ đâu và khi nào? Đề tài luận án hay :-)

Tôi nhặt được câu "trừ" từ một nhóm tin tặc hạt nhân mà tôi đã làm việc tại một công ty nhất định có HĐH bao gồm các phần chính của BSD (đó sẽ là táo). Tôi luôn thấy rằng nó vấp lưỡi dễ dàng hơn nhiều so với dấu gạch ngang.

Nếu tôi có một tên tệp có dấu "-" trong đó tôi sẽ không bao giờ gọi nó là dấu trừ, tôi sẽ gọi nó là dấu gạch ngang. Vì vậy, tôi có thể dễ dàng phân biệt trong cuộc hội thoại giữa phần đối số của lệnh và phần tên tệp.

Rất hiếm khi bao gồm các biểu thức số học trong các lệnh shell, vì vậy sự nhầm lẫn với toán học dường như là không thể.

Dựa trên các câu trả lời khác ở đây, có vẻ như những người là những bậc thầy UNIX thời xưa, hoặc giống như tôi đã quanh quẩn với những bậc thầy UNIX thời xưa, thích nói "trừ" hơn. Vì vậy, tôi nghi ngờ rằng có một câu chuyện lịch sử thú vị ở đây.


0

Tôi nghĩ lý do chính ở đây là vì bạn thực sự cần sử dụng một ký tự trừ ( -unicode 2212) để chỉ định các tùy chọn.

N-dash ( unicode 2013) sẽ không được chọn bởi lệnh rm.

Tôi không chắc làm thế nào điều này hoạt động trong các cửa sổ.

Nhưng tôi đã thấy những người dùng linux có kinh nghiệm nói dash thay vì trừ (và tôi thường tự mắc lỗi), chủ yếu bị ảnh hưởng bởi bài hát 'kill dash Nine' của Monzy

Thêm về sự khác biệt bteween một dấu gạch ngang và một âm trừ


2
Bạn không thể sử dụng Uniode trừ U + 2212 để giới thiệu các tùy chọn. Bạn phải sử dụng dấu gạch nối ASCII-trừ U + 002D.
Celada

rm −i dpkg.log(trừ) cho rm: cannot remove ‘−i’: No such file or directory.
GKFX

0

Tôi biết đây là một chủ đề cũ, nhưng tôi đã không thấy lời giải thích này ở bất cứ nơi nào khác.

Tôi còn khá mới với Linux và c ++, và tôi đã nói rằng "-j" là "tack j". Không có lời giải thích, tôi cho rằng nó có nghĩa là tack như trong "tack on". Giống như giải quyết một "j" vào cuối lệnh. tức là làm -j 10

Vì vậy, "tack" không nhất thiết phải là một từ "-" (mà tôi thường gọi là một điểm trừ), mà là một hành động được thực hiện bằng cách sử dụng "-".

Chắc chắn không nói điều này là đúng về mặt lịch sử, nhưng tôi có thể không phải là người duy nhất sử dụng nó theo cách này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.