क्या यह किसी भी मानक (जैसे POSIX) का हिस्सा है, कि सिस्टम फाइलें लोअर केस होनी चाहिए?


29

मेरी कंपनी ने एक एप्लिकेशन को फिर से शुरू किया जिसका ब्रांड नाम मिश्रित मामला है, उदाहरण के लिए "ApplicationName"।

एप्लिकेशन का इंस्टॉलर इस मानक में सभी पथ और फ़ाइल नाम बनाता है। उदाहरण के लिए मुख्य निर्देशिका है /opt/ApplicationName, init फ़ाइल को कहा जाता है ApplicationNameइसलिए मुझे चलाना होगाservice ApplicationName status इत्यादि।

मेरे लिए, यह सभी समझदार सम्मेलनों को तोड़ता है और मुझे लगता है कि फाइलें और निर्देशिका सभी कम मामले होने चाहिए (MySQL जैसे अन्य अनुप्रयोगों में मिसाल है, जिनकी फाइलें और डायर सभी कहलाते हैं mysql , यहां तक ​​कि एपाचे और टॉम्कट जैसे एप्लिकेशन पूर्ववर्ती के साथ क्या करते हैं? बड़े अक्षर)।

यदि मैं इसे बग रिपोर्ट के रूप में उठाता हूं, तो मैं "मुझे लगता है कि यह गलत है" की तुलना में एक मजबूत तर्क देना चाहता हूं। तो क्या यह POSIX मानक की तरह कुछ तय है कि इस तरह की सिस्टम फाइलें लोअर केस होनी चाहिए?


9
आप यह भी इंगित कर सकते हैं कि यह आपके ग्राहकों के लिए अत्यधिक कष्टप्रद है क्योंकि आप उन्हें एक अतिरिक्त बटन (शिफ्ट) का उपयोग करने के लिए मजबूर करेंगे। यह एक बड़ी बात नहीं लगती (ठीक है, यह नहीं है) लेकिन यह कष्टप्रद है।
terdon

5
कुछ filesystems असंवेदनशील हैं, यह एक सरल टाइपो इंगित करने के लायक होगा (उदाहरण के लिए, कुछ उपयोगकर्ता स्क्रिप्ट गलती से "applicationname" पर फ़ाइल को संदर्भित करती है) कुछ सिस्टम पर काम करेगी लेकिन दूसरों पर नहीं, इस मुद्दे को तुरंत नहीं उठाया जाएगा। बाद में ढूंढना महंगा पड़ सकता है। अधिक स्पष्ट "application_name" में इस समस्या की संभावना कम होती है।
स्टेफन

11
एक और प्रतिधारण: एक्स 11 से संबंधित कुछ भी आमतौर पर अपने फ़ाइल नाम में एक राजधानी एक्स होता है, जैसे / usr / X11R6, /usr/lib/libX11.so, और इसी तरह।
खानाबदोश

1
एक्स आज आपका ट्रेंड-प्रूविंग अपवाद बनना चाहेगा।
StarWeaver

1
@nomadictype एक यूनिक्स सिस्टम पर चलने के अलावा, एक्स विंडोज सिस्टम का यूनिक्स पॉसिक्स मानक के साथ बहुत कम संबंध है।
Kusalananda

जवाबों:


27

POSIX मानक के पास उपयोगिताओं के अनुरूप दिशा-निर्देशों के साथ एक खंड है (जैसे, "जैसे कि स्थानीय प्रणाली के लिए विशिष्ट लिखे गए या जो बड़े अनुप्रयोग के घटक हैं") जो कहता है

  1. उपयोगिता नाम दो और नौ वर्णों के बीच होना चाहिए, समावेशी।
  2. उपयोगिता नाम में लोअरकेस अक्षर (निचला वर्ण वर्गीकरण) और अंक केवल पोर्टेबल वर्ण सेट से शामिल होने चाहिए।

[रेफरी: १२.२ यूटिलिटी सिंटैक्स दिशानिर्देश ]

यह मेरे लिए स्पष्ट नहीं है कि क्या शब्दों का उपयोग "वास्तव में" का अर्थ केवल शामिल होना चाहिए में " शामिल " शामिल । (नीचे टिप्पणियों में आम सहमति यह है कि इसका अर्थ है "केवल शामिल होना चाहिए")।

एक यूनिक्स प्रणाली पर एक एप्लिकेशन जो कि POSIX अनुरूप उपयोगिता होने का दावा नहीं करता है अन्यथा वह जो भी नाम चाहता है उसका उपयोग कर सकता है। यदि यह एक POSIX अनुरूप उपयोगिता होने का दावा करता है जो POSIX शेल उपयोगिताओं का हिस्सा है , तो धारा 12.2 में दिशानिर्देशों के बाद का पाठ कहता है कि "चाहिए" का अर्थ "बदल जाएगा"।

जहाँ तक मुझे पता है निर्देशिका के नामों के बारे में कोई समान दिशानिर्देश नहीं हैं। macOS (जो इंटेल-आधारित मैक कंप्यूटर पर चलने पर एक प्रमाणित यूनिक्स 03 उत्पाद है ) /Usersउपयोगकर्ता के घर निर्देशिकाओं के लिए उपसर्ग के रूप में उपयोग करता है , साथ ही साथ अन्य मिश्रित-केस निर्देशिका नामों की संख्या।


3
मुझे नहीं लगता कि वे वास्तव में कहीं भी POSIX के अनुरूप होने का दावा करते हैं। दिलचस्प बात यह है कि आवेदन का नाम 10 वर्ण लंबा है, इसलिए वे उस मोर्चे पर भी विफल हो जाते हैं। BTW, जिस तरह से मैं पॉइंट 2 पढ़ता हूं वह है "इसमें केवल लोअर केस और अंक शामिल होना चाहिए - मुझे लगता है कि फाइनल" केवल "पूरे क्लॉज को कवर करता है। शायद english.stackexchange.com के लिए एक प्रश्न :)
डैरेन

3
XBD shouldनिम्नानुसार परिभाषित करता है: "एक कार्यान्वयन के लिए जो IEEE Std 1003.1-XXXX के अनुरूप है, एक ऐसी विशेषता या व्यवहार का वर्णन करता है जो अनुशंसित है लेकिन अनिवार्य नहीं है। एक एप्लिकेशन को सुविधा या व्यवहार के अस्तित्व पर भरोसा नहीं करना चाहिए। एक आवेदन ऐसे पर निर्भर करता है। एक विशेषता या व्यवहार को कार्यान्वयन के अनुरूप पोर्टेबल होने का आश्वासन नहीं दिया जा सकता है। एक आवेदन के लिए, एक सुविधा या व्यवहार का वर्णन करता है जिसे इष्टतम पोर्टेबिलिटी के लिए प्रोग्रामिंग अभ्यास की सिफारिश की जाती है। "
fpmurphy

5
क्या किसी एप्लिकेशन के नामकरण का सिस्टम उपयोगिताओं के नामकरण से कोई लेना-देना है ?
मैटी विर्ककुनेन

1
@ इल्मारिकारोनन सही। दिशानिर्देश मानक में वर्णित उपयोगिताओं को लागू करने के लिए हैं।
कुसलानंद

3
आपके द्वारा उद्धृत वाक्य में एक "केवल" है। यह वाक्यांश में एक अजीब बिंदु पर आता है, शायद समिति के संपादन के कारण, लेकिन इसका अभी भी एक ही प्रभाव है।
होब्स

44

नहीं, सॉफ़्टवेयर पैकेज इंस्टॉलेशन निर्देशिकाओं के लिए निम्न केस नाम निर्दिष्ट नहीं हैं।

वास्तव में, ऐतिहासिक रूप से सॉफ़्टवेयर पैकेज स्थापित किए गए /optहैं जो कंपनी के सभी-राजधानियों स्टॉक टिकर प्रतीक के साथ शुरू करते हैं, जैसे कि SUNWसन माइक्रोसिस्टम्स के लिए पैकेज प्रदान करना याORCL ओरेकल के ।

इसलिए Sun के QFS फाइलसिस्टम जैसे पैकेजों को डायरेक्ट्री में स्थापित किया जाएगा, जैसे कुछ /opt/SUNWqfs


7
स्टॉक टिकर्स के बारे में इस नए शीर्षक को TIL करें। Upvoted। धन्यवाद।
डैरेन

2
मेरा मानना ​​है कि कन्वेंशन केवल सनोस / सोलारिस पर लागू होता है।
fpmurphy

3
@ fpmurphy1 शायद। लेकिन यह देखते हुए कि सूर्य ने POSIX अनुपालन का इलाज कैसे किया, मुझे संदेह है कि उनके द्वारा चुनी गई नामकरण योजना मानक के किसी भी हिस्से का उल्लंघन करेगी। ना ही मुझे लगता है कि सूरज को ओरेकल को किसी भी नामकरण योजना का उपयोग करने में समझाने में बहुत सफलता मिली होगी।
एंड्रयू हेनले

1
@AndrewHenle, SunOS / Solaris के लिए एसएमआई नामकरण योजना प्रासंगिक मानकों और विनिर्देशों के अनुरूप है। POSIX और सिंगल यूनिक्स स्पेसिफिकेशन दोनों shouldको अनिवार्य रूप से परिभाषित किया गया हैit is recommended
fpmurphy

ऊपरी मामले के नाम महज किरकिरी और अपनाए गए-से-मेनफ्रेम का
एहसास करते हैं

4

POSIX दिशानिर्देशों के अनुसार, मुझे लगता है कि उपयोगकर्ता की परंपरा का और भी अधिक वजन हो सकता है। "ApplicationName" के रूप में केस के नाम विकीस विस्फोट के साथ लोकप्रिय हो गए, कुछ लोगों (मेरे जैसे) को हाइफ़न, या बदतर, रिक्त स्थान के बजाय राजधानियों का उपयोग करने के लिए आदी बना दिया। लेकिन लिनक्स और इसी तरह के ओएस के लोकप्रिय होने के कुछ साल बाद, एक बहुत लंबी यूनिक्स परंपरा के पीछे।

यह परंपरा हमेशा (सादगी) रही है, न कि केवल कुसलानंद ने जो नियम बताए हैं, उनका पालन करते हुए, यहां तक ​​कि केवल चार-छह वर्णों के शब्दों को संक्षिप्त रूप में (उदाहरण के लिए, /usr"उपयोगकर्ता" या /srv"सेवा" के लिए या/mnt "घुड़सवार" के लिए)। स्पष्ट रूप से लंबे अर्थ/sbin "सुपरसाइनर बायनेरिज़" के लिए। इस परंपरा में, अपरकेस, आपको शिफ्ट कुंजी को दबाने के लिए मजबूर करता है, और शायद गलती से कैप्स लॉक कुंजी भी बस बुराई है।

कुछ हद तक यह आश्चर्यजनक है क्योंकि यूनिक्स लंबे समय से केस सेंसिटिव लॉन्ग फाइलनाम लिखने में सक्षम है, जबकि इसके विपरीत, MS-DOS / Windows केस के लिए असंवेदनशील शॉर्ट फिल्म्स (आठ कैरेक्टर प्लस थ्री प्लस थ्री एक्सटेंशन के लिए सीमित था) लेकिन जल्दी खो गया यह सरलता ("प्रोग्राम फाइल्स", "माय डॉक्यूमेंट्स" आदि) जब विंडोज 95 इस सीमा को पार करता है।

बहरहाल, आज NetworkManagerडेमॉन जैसे कुछ अपवाद हैं और शायद हम भविष्य में और अधिक विकिपीडिया देखेंगे। लेकिन हम अभी भी माउस से नफरत करते हैं और टर्मिनल लंबे नामों में लिखते हैं जिन्हें आप केवल TabTabस्वत: पूर्णता के साथ समाप्त कर सकते हैं । या कोई देख कुछ लाभ का नाम बदलने vimके लिए VisualImproved?


3
/usr"उपयोगकर्ता" के लिए आशुलिपि नहीं है। यह "यूनिक्स सिस्टम रिसोर्स" के लिए शॉर्टहैंड है
fpmurphy

1
@ fpmurphy1 जिसमें एक बैरोनियम की तरह खुशबू आ रही है।
हॉब्स

3
@ fpmurphy1 /usrमूल रूप से उपयोगकर्ता के घर निर्देशिका (जैसे /homeआज) को शामिल करने के लिए निर्देशिका थी । मैं शौक से सहमत हूं।
फ्रैंक

2
विंडोज My Computerमें, एक निर्देशिका नहीं है, और न ही है। यह विशुद्ध रूप से एक शेल निर्माण है; आप इस बात पर विचार कर सकते हैं कि आप कमांड प्रॉम्प्ट में या पुरानी शैली की Win16 एप्लीकेशन में किस तरह से नेविगेट करेंगे। Program Filesअपने स्वयं के स्थानीय नाम के साथ एक गड़बड़ है; मैं उस मुद्दे पर कल सबसे शाब्दिक रूप से भाग गया , जहां सॉफ्टवेयर के एक टुकड़े ने अंग्रेजी नाम मान लिया था, Program Filesलेकिन वास्तविक नाम जैसा कि सिस्टम पर स्थानीय था। शायद विंडोज 95 में माइक्रोसॉफ्ट के सबसे खराब
नासमझों में से एक

@hobbs। @Fran बस के लिए एक इंटरनेट करना /usrऔर Unix System Resources और, हाँ, यूनिक्स के प्रारंभिक संस्करणों, उन घर निर्देशिका भी के तहत `/ usr 'रहते थे
fpmurphy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.