Đây có phải là một phần của bất kỳ tiêu chuẩn nào không (ví dụ POSIX), các tệp hệ thống phải là chữ thường?


29

Công ty của tôi bán lại một ứng dụng có tên thương hiệu là trường hợp hỗn hợp, ví dụ "ApplicationName".

Trình cài đặt của ứng dụng tạo tất cả các đường dẫn và tên tệp trong tiêu chuẩn này. Ví dụ: Thư mục chính là /opt/ApplicationName, tệp init được gọi ApplicationNameđể tôi phải chạy service ApplicationName statusvà cứ thế.

Đối với tôi, điều này phá vỡ tất cả các quy ước hợp lý và tôi cảm thấy tất cả các tệp và thư mục đều phải viết thường (có tiền lệ trong các ứng dụng khác như MySQL, có các tệp và thư mục được gọi mysql, ngay cả các ứng dụng như Apache và Tomcat đều bỏ đi trước đó chữ viết hoa).

Nếu tôi nêu ra đây là một báo cáo lỗi, tôi muốn đưa ra một lập luận mạnh mẽ hơn là chỉ "Tôi nghĩ đó là sai". Vì vậy, nó có được quy định trong một cái gì đó giống như tiêu chuẩn POSIX mà các tệp hệ thống như thế này nên viết thường không?


9
Bạn cũng có thể chỉ ra rằng điều đó cực kỳ gây khó chịu cho khách hàng của bạn vì bạn sẽ buộc họ sử dụng một nút phụ (ca). Điều này có vẻ không phải là một vấn đề lớn (OK, không phải vậy) nhưng nó gây phiền nhiễu.
terdon

5
Một số hệ thống tệp không phân biệt chữ hoa chữ thường, đáng để chỉ ra một lỗi đánh máy đơn giản (ví dụ: một số tập lệnh người dùng tham chiếu tệp tại "tên ứng dụng" do nhầm lẫn) sẽ hoạt động trên một số hệ thống nhưng không phải trên các hệ thống khác, vấn đề sẽ không được xử lý ngay lập tức và có thể tốn kém để tìm sau này Một "application_name" rõ ràng hơn ít có khả năng có vấn đề này.
Stefan

11
Một ví dụ khác: mọi thứ liên quan đến X11 thường có chữ X viết hoa trong tên tệp của nó, ví dụ / usr / X11R6, /usr/lib/libX11.so, v.v.
du mục

1
X muốn là ngoại lệ chứng minh xu hướng của bạn ngày hôm nay.
StarWeaver

1
@nomadictype Ngoài việc chạy trên hệ thống Unix, Hệ thống X Windows có rất ít liên quan đến chuẩn Unix POSIX.
Kusalananda

Câu trả lời:


27

Tiêu chuẩn POSIX có một phần với các hướng dẫn về việc tuân thủ các tiện ích (nghĩa là "chẳng hạn như các văn bản dành riêng cho hệ thống cục bộ hoặc là các thành phần của ứng dụng lớn hơn") cho biết

  1. Tên tiện ích phải có từ hai đến chín ký tự.
  2. Tên tiện ích phải bao gồm các chữ cái viết thường (phân loại ký tự thấp hơn) và chỉ các chữ số từ bộ ký tự di động.

[ref: 12.2 Nguyên tắc Cú pháp Tiện ích ]

Tôi không rõ liệu việc sử dụng các từ "nên bao gồm" thực sự có nghĩa là " chỉ nên bao gồm". (Sự đồng thuận trong các ý kiến ​​dưới đây là nó có nghĩa là "chỉ nên bao gồm").

Một ứng dụng trên hệ thống Unix không tự nhận là tiện ích tuân thủ POSIX có thể sử dụng bất kỳ tên nào nó muốn. Nếu nó tự nhận là tiện ích tuân thủ POSIX là một phần của tiện ích shell POSIX , thì văn bản theo hướng dẫn trong phần 12.2 nói rằng "nên" thay đổi nghĩa thành "sẽ".

Không có hướng dẫn tương tự về tên thư mục theo như tôi biết. macOS (là một sản phẩm UNIX 03 được chứng nhận khi chạy trên máy tính Mac dựa trên Intel) sử dụng /Userslàm tiền tố cho các thư mục nhà của người dùng, ví dụ, cũng như một số tên thư mục trường hợp hỗn hợp khác.


3
Tôi không nghĩ rằng họ thực sự tuyên bố là tuân thủ POSIX ở bất cứ đâu. Điều thú vị là tên ứng dụng dài 10 ký tự nên chúng cũng thất bại ở mặt trước đó. BTW, cách tôi đọc điểm 2 là "nó chỉ nên bao gồm chữ thường và chữ số - Tôi nghĩ rằng" chỉ "cuối cùng bao gồm toàn bộ mệnh đề. Có lẽ là một câu hỏi cho tiếng Anh.stackexchange.com :)
Darren

3
XBD định nghĩa shouldnhư sau: "Để triển khai tuân thủ theo tiêu chuẩn IEEE Std 1003.1-XXXX, mô tả một tính năng hoặc hành vi được khuyến nghị nhưng không bắt buộc. Ứng dụng không nên dựa vào sự tồn tại của tính năng hoặc hành vi. một tính năng hoặc hành vi không thể được đảm bảo để có thể di chuyển trong các triển khai tuân thủ. Đối với một ứng dụng, hãy mô tả một tính năng hoặc hành vi được khuyến nghị thực hành lập trình để có tính di động tối ưu. "
fpmurphy

5
Việc đặt tên của một ứng dụng có liên quan gì đến việc đặt tên các tiện ích hệ thống không?
Matti Virkkunen

1
@IlmariKaronen Đúng. Các hướng dẫn là để thực hiện các tiện ích được mô tả trong chính tiêu chuẩn.
Kusalananda

3
Có một "duy nhất" trong câu bạn trích dẫn. Nó đến ở một điểm khó xử trong cụm từ, có thể là do chỉnh sửa ủy ban, nhưng nó vẫn có tác dụng tương tự.
hobbs

44

Không, tên chữ thường không được chỉ định cho các thư mục cài đặt gói phần mềm.

Trên thực tế, các gói phần mềm trong lịch sử được cài đặt /optbắt đầu bằng biểu tượng mã chứng khoán tất cả vốn của công ty cung cấp gói, chẳng hạn như SUNWcho Sun microsystems hoặc ORCLcho Oracle.

Vì vậy, các gói như hệ thống tập tin QFS của Sun sẽ được cài đặt trong một thư mục có tên giống như /opt/SUNWqfs.


7
TIL này chuẩn độ mới về chứng khoán chứng khoán. Nâng cao. Cảm ơn.
Darren

2
Tôi tin rằng quy ước chỉ áp dụng cho SunOS / Solaris.
fpmurphy

3
@ fpmurphy1 Có lẽ. Nhưng với cách Sun đối xử với việc tuân thủ POSIX, tôi nghi ngờ kế hoạch đặt tên mà họ chọn sẽ vi phạm bất kỳ phần nào của tiêu chuẩn. Tôi cũng không nghĩ Sun sẽ có nhiều thành công trong việc thuyết phục Oracle sử dụng bất kỳ sơ đồ đặt tên nào.
Andrew Henle

1
@AndrewHenle, sơ đồ đặt tên SMIs cho SunOS / Solaris tuân thủ các tiêu chuẩn và thông số kỹ thuật có liên quan. Cả POSIX và Thông số kỹ thuật Unix đơn đều xác định shouldvề cơ bảnit is recommended
fpmurphy

tên viết hoa chỉ cảm thấy
ảm đạm

4

Bên cạnh các hướng dẫn POSIX đã nói, tôi nghĩ rằng điều đó thậm chí có thể nặng hơn truyền thống người dùng. Tên trường hợp là "ApplicationName" trở nên phổ biến với vụ nổ Wikis, quen với một số người (như tôi) sử dụng chữ hoa thay vì dấu gạch nối, hoặc tệ hơn là khoảng trắng. Nhưng đây là một vài năm sau khi Linux và hệ điều hành tương tự trở nên phổ biến, với truyền thống Unix rất dài đằng sau.

Truyền thống này luôn luôn là sự đơn giản, không chỉ tuân theo các quy tắc mà Kusalananda đã chỉ ra, thậm chí viết tắt các từ chỉ bốn sáu ký tự (ví dụ: /usr"người dùng" hoặc /srv"phục vụ" hoặc /mnt"gắn kết") và rõ ràng là ý nghĩa dài hơn ( /sbinđối với "nhị phân siêu người dùng". Theo truyền thống này, chữ hoa, buộc bạn nhấn phím Shift, và có thể vô tình cũng là phím Caps Lock, đơn giản là xấu xa.

Ở một mức độ nào đó, điều này thật đáng kinh ngạc vì Unix từ lâu đã có thể viết các tên tệp dài phân biệt chữ hoa chữ thường, trong khi ngược lại, MS-DOS / Windows bị giới hạn ở các tên tệp ngắn không phân biệt chữ hoa chữ thường (tám ký tự cộng với ba ký tự cho phần mở rộng) nhưng nhanh chóng bị mất sự đơn giản này ("Tệp chương trình", "Tài liệu của tôi", v.v.) khi Windows 95 vượt qua giới hạn này.

Tuy nhiên, ngày nay có một vài trường hợp ngoại lệ như NetworkManagerdaemon và có lẽ chúng ta sẽ thấy nhiều Wikiemme trong tương lai. Nhưng chúng tôi vẫn ghét chuột và viết tên dài cuối mà bạn chỉ có thể kết thúc bằng TabTabtự động hoàn thành. Hoặc ai đó thấy một số lợi thế đổi tên vimthành VisualImproved?


3
/usrkhông phải là tốc ký cho "người dùng". Nó là viết tắt của "tài nguyên hệ thống Unix"
fpmurphy

1
@ fpmurphy1 có mùi như một từ viết tắt.
hobbs

3
@ fpmurphy1 /usrban đầu là thư mục chứa các thư mục nhà của người dùng (như /homengày nay). Tôi đồng ý với hobbs.
Fran

2
Trong Windows, My Computerkhông, và chưa bao giờ, là một thư mục. Nó hoàn toàn là một cấu trúc vỏ; bạn có thể minh họa điều này bằng cách xem xét cách bạn sẽ, trong dấu nhắc lệnh hoặc trong ứng dụng Win16 kiểu cũ, điều hướng đến nó. Program Fileslà một mớ hỗn độn của riêng nó, với tên địa phương hóa của nó; Tôi đã gặp vấn đề gần đây nhất theo nghĩa đen ngày hôm qua , trong đó một phần mềm giả định tên tiếng Anh Program Filesnhưng tên thực tế được sử dụng đã được bản địa hóa trên hệ thống. Có lẽ là một trong những kẻ ngu ngốc của Microsoft trong Windows 95.
CVn

@hobbs. @Fran Chỉ cần làm một Internet cho /usrUnix System Resources Và, vâng, trong các phiên bản đầu của Unix, các thư mục nhà của người dùng cũng sống dưới `/ usr '
fpmurphy
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.