फ़ाइल (या निर्देशिका) नामों में विभाजकों के लिए अच्छी शैली / अभ्यास [बंद]


16

अगर यह यहाँ पोस्ट करने के लिए "सही" सवाल है तो मुझे बिल्कुल यकीन नहीं है। मैं शायद वास्तविक श्रेणीबद्ध जवाबों की तुलना में "राय" के बारे में अधिक पूछ रहा हूं (उन में से जो या तो काम करते हैं या नहीं, और यह बात है)।

मैं सोच रहा था कि किस नाम के विभाजक एक ही समय में सबसे अधिक अनुकूल (या अधिक विशेष रूप से, बैश अनुकूल ) और मानव के अनुकूल होंगे

मान लीजिए कि मैं एक ऐसी निर्देशिका बनाना चाहता हूं जिसमें मिस्टर फू बार ( Foo का पहला नाम, बार का अंतिम नाम होना) से संबंधित कुछ है

नाम होना " Foo-Bar/" बहुत सुविधाजनक है। -एक "नियमित" चरित्र है, इसे बचने की आवश्यकता नहीं है, यह स्पष्ट रूप से दिखाता है कि Fooऔर Barदो अलग चीजें हैं ... अच्छा।

अब, " Foo.Bar" थोड़ा मुश्किल है। कोई यह सोच सकता है कि Foo.Barवास्तव में एक फ़ाइल है (पहली नज़र में, विशेष रूप से यदि आपके पास सक्षम रंग के साथ टर्मिनल नहीं हैं) जहां " Foo" फ़ाइल नाम है, और " Bar" विस्तार है।

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

ब्रैकेट ()बहुत सारे मुद्दों का कारण बनते हैं। वे भी बचने की जरूरत है, तो के रूप में आदेशों के साथ परेशानी का कारण scp... अच्छा नहीं है।

तो ... सवाल (पिछले पर) है: यदि आपको एक मुट्ठी की नज़र में फ़ाइल का नाम स्पष्ट और सार्थक बनाने की आवश्यकता है, और आपको विभाजकों का उपयोग करने की आवश्यकता है, तो आप क्या उपयोग करते हैं?



मैं अक्सर डैश का उपयोग करता हूं, लेकिन यह इस बात पर निर्भर करता है कि मैं क्या कर रहा हूं। कुछ लोग ऊंट के मामले को फूबर की तरह उचित मान सकते हैं।
klapaucius

जवाबों:


14

संक्षिप्त उत्तर: "फू _-_ बार"

लंबा जवाब:

चीजों को आसान बनाने के लिए मैं उन क्षेत्रों में वर्णों के अनुक्रम का उपयोग करता हूं जहां यह आवश्यक है, विचार कुछ ऐसा उपयोग करना है जो आसान हो ताकि आपको यह पता चल सके कि यह विभाजक है शायद "_-_" या " ___ "।

एक व्यावहारिक उदाहरण जहां मैं इसका उपयोग करता हूं वह मेरा एमपी 3 संग्रह है जहां फ़ाइल नाम में कलाकार और गीत शीर्षक होते हैं, और कभी-कभी अनुक्रम संख्या भी होती है। और यदि आप उन्हें अलग करने के लिए एक जादू अनुक्रम का उपयोग करते हैं तो यह आंख और स्क्रिप्ट के लिए दोनों के लिए आसान है। एमपी 3 उदाहरण कुछ इस तरह दिख सकता है।

  • 01_Blue_Man_Group _-_ Above.mp3
  • 02_Blue_Man_Group _-_ Time_to_Start.mp3
  • 03_Blue_Man_Group _-_ Sing_Along.mp3

अब यह आपके उदाहरण में अनुवादित किया जा सकता है यदि फू और बार दो तार्किक चीजें हैं जिन्हें मिश्रण नहीं करना चाहिए, और फिर फू-_-बार हो सकता है।


2
और इस तरह आप उन नामों को भी अलग कर सकते हैं जिनमें पहले से ही डैश (या सामान्य रूप से विभाजक) शामिल हैं।
lynxlynxlynx

1
पूर्व पार्स के लिए भी वास्तव में अच्छा है! : ^ (। +) _-_ (। +) \ _ mp3 $
दानादान

यह देखते हुए कि मनुष्य इन फ़ाइलों को देखेगा, यह एक अच्छा जवाब है; संक्षेप में मैं इसे एक विभाजक स्ट्रिंग मानूंगा; एक बहु-चरित्र अद्वितीय विभाजक। Vagrant में, मैंने देखा है कि यह VAGRANTSLASHफ़ाइल नामों में स्ट्रिंग का उपयोग करता है जहाँ अलगाव है।
थोरसुमोनर

9

इतने सारे चरित्रों के साथ, जो आपको नहीं लगता कि विशेष होना चाहिए, वास्तव में विशेष होने के नाते, मैं वैसे भी विशेष पात्रों का उपयोग करता हूं। यह मुझे बैश समापन का उपयोग करने की अच्छी आदतों में भी रखता है, जहां यह एक फ़ाइल नाम के सभी विशेष पात्रों को ऑटो-एस्केप करेगा। लेकिन यह मुझे स्क्रिप्ट्स में भागने / भाग लेने और बैश में मल्टी-पार्ट 1-लाइनर्स देने की अच्छी आदतों में भी डालता है।

उदाहरण के लिए, सिर्फ एक साधारण लाइनर में:

for file in *.txt; do something.sh "$file"; done

इस तरह, भले ही फ़ाइलों में से एक में कोई स्थान हो, या कोई अन्य वर्ण हो, doलूप का हिस्सा अभी भी उस पर कार्य करेगा, और 2 या अधिक फ़ाइल-नाम-भागों पर याद नहीं होगा, संभवतः अनपेक्षित दुष्प्रभाव।

चूँकि मैं कभी भी फाइल के एनकाउंटर / स्पेस-स्पेस के नामकरण को नियंत्रित नहीं कर सकता, और अगर मैंने कोशिश की, तो यह शायद कहीं न कहीं कुछ सहानुभूति को तोड़ देगा, जिससे अभी और अधिक अनपेक्षित परिणाम होंगे, मैं बस उम्मीद करता हूं कि सभी फ़ाइलनाम / डायरेक्टरीनाम इसमें स्थान बना सकते हैं, और क्षतिपूर्ति करने के लिए बस सभी चर को उद्धृत / बचाना।

इसलिए, फिर मैं फ़िल्नामें में जो भी वर्ण चाहता हूं (अक्सर रिक्त स्थान) का उपयोग करता हूं।

मैं यहां तक ​​कि ZFS डेटासेट के नामों में रिक्त स्थान का उपयोग करता हूं, जिसे मुझे स्वीकार करना होगा कि एनएएस I के उपयोग के लिए सॉफ़्टवेयर लिखने वाले डेवलपर्स के बीच उचित मात्रा में सिर खुजलाना है।

Sum-up: रिक्त स्थान एक अमान्य वर्ण नहीं हैं , इसलिए उनका उपयोग करने का कोई कारण नहीं है।


6

मैं डैश का उपयोग करता हूं -, जिन कारणों का आप ऊपर उल्लेख करते हैं। मैं अंडरस्कोर से बचता हूं क्योंकि उन्हें शिफ्ट की का उपयोग करने की आवश्यकता होती है, इसलिए कम से कम दो बार लंबे समय तक टाइप करें (यह भी, मुझे लगता है कि वे बदसूरत हैं)

मैं पटकथा फ़ाइल नाम के लिए कुछ और करने के लिए इच्छुक हूं - मुझे लगता है कि मेरे लिए यह स्पष्ट रूप से पहचानना महत्वपूर्ण है कि एक पटकथा क्या है। दस्तावेज़ फ़ाइलें केवल निष्क्रिय डेटा हैं, लेकिन यदि दुरुपयोग किया जाता है तो स्क्रिप्ट संभावित रूप से खतरनाक हैं।


5

मैं अंडरस्कोर ( _) का उपयोग करता हूं । नेत्रहीन वे गायब हो जाते हैं, और टाइप करना आसान होता है और विशेष नहीं।


4
मुझे उन्हें बदसूरत लगता है -, और टाइप करने के लिए कठिन है (एक को शिफ्ट की का उपयोग करना
पड़ता है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.