มันเป็นส่วนหนึ่งของมาตรฐานใด ๆ (เช่น POSIX) ไฟล์ระบบนั้นควรเป็นตัวพิมพ์เล็กหรือไม่?


29

บริษัท ของฉันขายแอปพลิเคชันที่มีชื่อแบรนด์เป็นแบบตัวพิมพ์ผสมเช่น "ApplicationName"

ตัวติดตั้งของแอปพลิเคชันจะสร้างพา ธ และชื่อไฟล์ทั้งหมดในมาตรฐานนี้ เช่นไดเร็กตอรี่หลักคือ/opt/ApplicationNameไฟล์ init ถูกเรียกใช้ApplicationNameดังนั้นฉันต้องเรียกใช้service ApplicationName statusและอื่น ๆ

สำหรับฉันนี่เป็นการประชุมที่มีเหตุผลทั้งหมดและฉันรู้สึกว่าไฟล์และไดเรกทอรีควรเป็นตัวพิมพ์เล็ก (มีแอปพลิเคชั่นอื่น ๆ เช่น MySQL ซึ่งมีไฟล์และ dirs ทั้งหมดถูกเรียกmysqlใช้แม้กระทั่งแอปพลิเคชันเช่น Apache และ Tomcat อักษรตัวพิมพ์ใหญ่).

หากฉันยกเป็นรายงานข้อผิดพลาดฉันต้องการที่จะโต้แย้งที่แข็งแกร่งกว่าเพียงแค่ "ฉันคิดว่ามันผิด" ดังนั้นมันจึงเป็นไปตามมาตรฐาน POSIX ที่ไฟล์ระบบแบบนี้ควรเป็นตัวพิมพ์เล็ก?


9
นอกจากนี้คุณยังสามารถชี้ให้เห็นว่ามันเป็นเรื่องน่ารำคาญอย่างยิ่งสำหรับลูกค้าของคุณเนื่องจากคุณจะบังคับให้พวกเขาใช้ปุ่มพิเศษ (Shift) นี่อาจดูเหมือนไม่ใช่เรื่องใหญ่ (โอเคใช่ไม่ใช่) แต่มันน่ารำคาญ
terdon

5
ระบบไฟล์บางตัวนั้นไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่มันจะคุ้มค่าที่จะชี้ให้เห็นการพิมพ์ผิดง่าย (เช่นสคริปต์ผู้ใช้บางคนที่อ้างถึงไฟล์ที่ "applicationname" โดยไม่ได้ตั้งใจ) จะทำงานบนระบบบางระบบ อาจมีค่าใช้จ่ายสูงในการค้นหาในภายหลัง "application_name" ที่ชัดเจนยิ่งขึ้นมีโอกาสน้อยที่จะมีปัญหานี้
สเตฟาน

11
ตัวอย่างอื่น ๆ : สิ่งที่เกี่ยวข้องกับ X11 มักจะมีตัวอักษร X ในชื่อไฟล์เช่น / usr / X11R6, /usr/lib/libX11.so เป็นต้น
nomadictype

1
X ต้องการเป็นข้อยกเว้นสำหรับการพิสูจน์แนวโน้มของคุณวันนี้
StarWeaver

1
@nomadictype นอกเหนือจากการทำงานบนระบบ Unix แล้ว X Windows System ยังมีส่วนน้อยที่เกี่ยวข้องกับมาตรฐาน Unix POSIX
Kusalananda

คำตอบ:


27

มาตรฐาน POSIX มีส่วนที่มีแนวทางสำหรับการสอดคล้องกับยูทิลิตี้ (เช่น "เช่นที่เขียนเฉพาะกับระบบโลคัลหรือเป็นส่วนประกอบของแอปพลิเคชันขนาดใหญ่") ที่ระบุว่า

  1. ชื่อยูทิลิตี้ควรอยู่ระหว่างสองถึงเก้าอักขระ
  2. ชื่อยูทิลิตี้ควรมีตัวอักษรตัวเล็ก (การจำแนกตัวอักษรต่ำกว่า) และตัวเลขจากชุดอักขระแบบพกพาเท่านั้น

[อ้างอิง: 12.2 หลักเกณฑ์ไวยากรณ์ของยูทิลิตี้ ]

มันไม่ชัดเจนสำหรับฉันว่าการใช้คำว่า "ควรมี" จริงๆหมายถึง "ควรมีเพียง " (ฉันทามติในความคิดเห็นด้านล่างคือหมายความว่า "ควรรวม" เท่านั้น)

แอปพลิเคชันบนระบบ Unix ที่ไม่ได้อ้างว่าเป็นยูทิลิตี้ตามมาตรฐาน POSIX อาจใช้ชื่ออะไรก็ได้ที่ต้องการ ถ้ามันไม่ได้เรียกร้องให้เป็นประโยชน์ที่สอดคล้องกับ POSIX ที่เป็นส่วนหนึ่งของสาธารณูปโภค POSIX เปลือกข้อความหลังจากแนวทางในส่วน 12.2 บอกว่า "ควร" การเปลี่ยนแปลงความหมาย "จะ"

ไม่มีแนวทางที่คล้ายกันเกี่ยวกับชื่อไดเรกทอรีเท่าที่ฉันรู้ macOS (ซึ่งเป็นผลิตภัณฑ์ UNIX 03 ที่ได้รับการรับรองเมื่อทำงานบนคอมพิวเตอร์ Mac ที่ใช้ Intel) ใช้/Usersเป็นคำนำหน้าสำหรับโฮมไดเร็กตอรี่ของผู้ใช้, เช่นเดียวกับชื่อไดเรกทอรีผสมกรณีอื่น ๆ


3
ฉันไม่คิดว่าพวกเขาจะอ้างว่าเป็น POSIX ได้ทุกที่ ที่น่าสนใจคือชื่อแอปพลิเคชั่นมีความยาว 10 ตัวอักษรดังนั้นจึงล้มเหลวที่ด้านหน้า BTW วิธีที่ฉันอ่านจุดที่ 2 คือ "ควรมีตัวพิมพ์เล็กและตัวเลขเท่านั้น - ฉันคิดว่าสุดท้าย" เท่านั้น "ครอบคลุมทั้งประโยคอาจเป็นคำถามสำหรับ english.stackexchange.com :)
Darren

3
XBD กำหนดshouldดังต่อไปนี้: "สำหรับการใช้งานที่สอดคล้องกับ IEEE Std 1003.1-XXXX อธิบายถึงคุณลักษณะหรือลักษณะการทำงานที่แนะนำ แต่ไม่บังคับใช้แอปพลิเคชันไม่ควรขึ้นอยู่กับคุณลักษณะหรือลักษณะการทำงาน คุณลักษณะหรือลักษณะการทำงานไม่สามารถมั่นใจได้ว่าสามารถพกพาได้ทั่วทั้งการใช้งานที่สอดคล้องกันสำหรับแอปพลิเคชันให้อธิบายคุณสมบัติหรือพฤติกรรมที่แนะนำให้ฝึกการเขียนโปรแกรมเพื่อความสะดวกในการพกพา "
fpmurphy

5
การตั้งชื่อแอพพลิเคชั่นนั้นเกี่ยวข้องกับการตั้งชื่อยูทิลิตี้ระบบหรือไม่?
Matti Virkkunen

1
@IlmariKaronen ถูกต้อง แนวทางนี้ใช้สำหรับการใช้งานระบบสาธารณูปโภคที่อธิบายไว้ในมาตรฐานนั้นเอง
Kusalananda

3
มีคำว่า "เท่านั้น" ในประโยคที่คุณยกมา มันมาถึงจุดที่น่าอึดอัดใจในวลีที่อาจเกิดจากการแก้ไขคณะกรรมการ แต่ก็ยังมีผลเหมือนกัน
ฮอบส์

44

ไม่ไม่ได้ระบุชื่อตัวพิมพ์เล็กสำหรับไดเรกทอรีการติดตั้งแพ็กเกจซอฟต์แวร์

ในความเป็นจริงแพคเกจซอฟต์แวร์ในอดีตติดตั้ง/optเริ่มต้นด้วยสัญลักษณ์หุ้นทั้งหมดของ บริษัท ที่ให้บริการแพคเกจเช่นSUNWสำหรับ Sun Microsystems หรือORCLสำหรับ Oracle

ดังนั้นแพคเกจเช่น QFS /opt/SUNWqfsซันระบบแฟ้มจะได้รับการติดตั้งในบางสิ่งบางอย่างไดเรกทอรีชื่อเหมือน


7
TIL titbit ใหม่นี้เกี่ยวกับทิกเกอร์หุ้น upvoted ขอบคุณ
Darren

2
ฉันเชื่อว่าการประชุมนั้นใช้กับ SunOS / Solaris เท่านั้น
fpmurphy

3
@ fpmurphy1 บางที แต่ด้วยวิธีที่ Sun ปฏิบัติต่อ POSIX ฉันสงสัยว่ารูปแบบการตั้งชื่อที่พวกเขาเลือกจะละเมิดส่วนใดส่วนหนึ่งของมาตรฐาน ฉันไม่คิดว่าซันจะประสบความสำเร็จในการโน้มน้าวใจ Oracle ให้ใช้รูปแบบการตั้งชื่อใด ๆ
Andrew Henle

1
@AndrewHenle แผนการตั้งชื่อ SMIs สำหรับ SunOS / Solaris สอดคล้องกับมาตรฐานและข้อกำหนดที่เกี่ยวข้อง ทั้ง POSIX และ Single Unix Specification กำหนดshouldว่าเป็นหลักit is recommended
fpmurphy

ตัวพิมพ์ใหญ่ชื่อเพียงแค่รู้สึกหนักใจและเป็นลูกบุญธรรมจากเมนเฟรม :)
rackandboneman

4

นอกเหนือจากแนวทางของ POSIX ที่กล่าวว่าฉันคิดว่ามันอาจมีน้ำหนักมากกว่าประเพณีของผู้ใช้ ชื่อเคสในฐานะ "ApplicationName" ได้รับความนิยมจากการระเบิดของ Wikis ทำให้บางคนคุ้นเคย (เช่นฉัน) เพื่อใช้ตัวพิมพ์ใหญ่แทนการใช้เครื่องหมายยัติภังค์หรือช่องว่างที่แย่กว่านั้น แต่นี่เป็นเวลาไม่กี่ปีหลังจากที่ Linux และระบบปฏิบัติการที่คล้ายคลึงกันได้รับความนิยมโดยมี Unix ที่สืบทอดกันมายาวนาน

ประเพณีนี้ได้รับ (คือ) ความเรียบง่ายเสมอไม่เพียง แต่ทำตามกฎที่ Kusalananda ชี้แม้แต่คำย่อของตัวอักษรสี่ - หกเท่านั้น (เช่น/usrสำหรับ "ผู้ใช้" หรือ/srv"เสิร์ฟ" หรือ/mnt"ติด") และ เห็นได้ชัดว่าความหมายอีกต่อไป ( /sbinสำหรับ "superuser ไบนารี" ในประเพณีนี้ตัวพิมพ์ใหญ่บังคับให้คุณกดปุ่ม Shift และบางทีอาจจะเป็นปุ่ม Caps Lock โดยไม่ตั้งใจ

ในระดับหนึ่งสิ่งนี้น่าประหลาดใจเพราะ Unixes ใช้เวลานานในการเขียนชื่อไฟล์แบบยาวขนาดเล็กที่มีความละเอียดอ่อนในขณะที่ในทางตรงกันข้าม MS-DOS / Windows ถูก จำกัด ให้ใช้ชื่อไฟล์แบบสั้นที่ไม่คำนึงถึงขนาดตัวพิมพ์ ความเรียบง่ายนี้ ("ไฟล์โปรแกรม", "เอกสารของฉัน" ฯลฯ ) เมื่อ Windows 95 มีข้อ จำกัด เกินกว่านี้

อย่างไรก็ตามในวันนี้มีข้อยกเว้นบางประการเช่นNetworkManagerdaemon และเราอาจจะเห็น WikiWords เพิ่มเติมในอนาคต แต่เรายังคงเกลียดเมาส์และเขียนชื่อเทอร์มินัลแบบยาวที่คุณสามารถลงท้ายด้วยการTabTabเติมข้อความอัตโนมัติเท่านั้น หรือใครบางคนเห็นความได้เปรียบบางอย่างเปลี่ยนชื่อvimเป็นVisualImproved?


3
/usrไม่ได้จดชวเลขสำหรับ "ผู้ใช้" มันเป็นการจดชวเลข "ทรัพยากรระบบ Unix"
fpmurphy

1
@ fpmurphy1 ที่มีกลิ่นเหมือนตัวย่อ
ฮอบส์

3
@ fpmurphy1 /usrเดิมเป็นไดเรกทอรีที่มีไดเรกทอรีบ้านของผู้ใช้ (เช่น/homeวันนี้) ฉันเห็นด้วยกับฮอบส์
ฟราน

2
ใน Windows My Computerไม่ใช่และไม่เคยเป็นไดเรกทอรีมาก่อน มันเป็นโครงสร้างของเชลล์อย่างหมดจด คุณสามารถอธิบายสิ่งนี้ได้โดยพิจารณาว่าคุณจะทำอย่างไรในพรอมต์คำสั่งหรือในแอปพลิเคชัน Win16 แบบเก่าให้นำทางไปยังมัน Program Filesเป็นระเบียบทั้งหมดของมันเองที่มีชื่อเป็นภาษาท้องถิ่น ฉันวิ่งเข้าไปในปัญหาที่มากที่สุดเมื่อเร็ว ๆ นี้อย่างแท้จริงเมื่อวานนี้ซึ่งเป็นชิ้นส่วนของซอฟต์แวร์สันนิษฐานว่าชื่อภาษาอังกฤษของProgram Filesแต่ชื่อจริงที่ใช้ถูกแปลเป็นภาษาท้องถิ่นในระบบ อาจเป็นหนึ่งใน Microsoft goofs ที่แย่กว่านั้นใน Windows 95
CVn

@hobbs @Fran เพียงทำอินเทอร์เน็ตเพื่อ/usrและUnix System Resources ใช่ในรุ่นแรก ๆ ของ Unix ไดเรกทอรีบ้านของผู้ใช้ยังอยู่ภายใต้ `/ usr '
fpmurphy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.