फ़ाइल नामों में अंडरस्कोर का उपयोग करना?


26

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

धन्यवाद



1
यदि आप LaTeX का उपयोग करेंगे, तो आपको कोष्ठक के एक जोड़े के अंदर फ़ाइल नाम की रक्षा करनी पड़ सकती है {...}। स्वचालित स्क्रिप्ट के मामले में आपको इस पर विचार करना चाहिए। _एक सबस्क्रिप्ट बना सकते हैं और में जैसे शामिल किया जाना करने के लिए प्रयोग किया जाता है $...$से बचने त्रुटि है, लेकिन यह आप क्या उम्मीद कर रहे हैं से एक पाठ अलग उत्पन्न होगा।
Gnuplot

जवाबों:


23

जहाँ तक ऑपरेटिंग सिस्टम का सवाल है, वे दोनों एक दूसरे की तरह ही उपयोग करने योग्य हैं।

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

केवल इस कारण से कि मुझे अंडरस्कोर करने के लिए लुभाया जाएगा।

इसके अलावा, हाइफ़न का उपयोग कमांड के स्विच के लिए किया जाता है, इसलिए हो सकता है कि यह आपके लिए फ़ाइलनाम के साथ-साथ आपके कमांड स्विच में भी हाइफ़न हो।

इसके अलावा यह विशुद्ध रूप से व्यक्तिगत पसंद के लिए नीचे है।


1
मैं हाइथन्स का उपयोग करता हूं, लेकिन ऐसा इसलिए है क्योंकि मुझे लुक बेहतर लगता है। इसके पीछे तकनीकी कारण।
बीटगैमिट

धन्यवाद! मुझे संदेह है लेकिन मुझे यह भी पता चला है कि मेरे संदेह पर जाने से मुझे परेशानी हो सकती है।
DQdlM

16

डैश को आपको SHIFT दबाने की आवश्यकता नहीं है, जिसका अर्थ है कि आप तेजी से टाइप करते हैं। श्री जेन्किन्स ने जो सुझाव दिया है, उसके बारे में मैं केवल यही सोच सकता हूं।

संभवत: वह सुझाव देने वाला व्यक्ति एक शौक़ीन विम उपयोगकर्ता है और कम से कम कीबोर्ड आंदोलन के साथ सब कुछ करने की इच्छा रखता है।


7
अगर ऐसा होता तो वे viइसके बजाय इस्तेमाल करते - एक कम कीस्ट्रोके;)
माजेंको

4
@Matt यह है alias'एड करने के लिए vवैसे भी ;-)
डैनियल बेक

+1 इसी कारण से मैं सभी-कैप्स नामों के साथ अंडरस्कोर का उपयोग करता हूं, जैसे FOO_BAR(मैं कैप्स लॉक का उपयोग नहीं करता हूं, इसलिए पूरे समय शिफ्ट को दबाए रखना अच्छा है)।
रिचर्ड हैनसेन

@DanielBeck मैं वास्तव में है कि मेरी पार्टी उपनाम में, साथ ही साथ gके लिए git:)
जनवरी Warchoł

मेरा मानना ​​है कि विम एक शब्द के रूप में हाइफ़न द्वारा अलग किए गए दो शब्दों को मानता है, इसलिए यह फ़ाइल नामों में अंडरस्कोर का उपयोग करने का एक कारण हो सकता है।
विषमरात्रि

8

मेरी सिफारिश है कि रिक्त स्थान के बजाय अंडरस्कोर का उपयोग करें। अंडरस्कोर आमतौर पर वे सम्मेलन होते हैं जो लोग रिक्त स्थान की जगह लेते समय उपयोग करते हैं, हालांकि हाइफ़न ठीक हैं मैं भी कहूंगा। लेकिन चूंकि हाइफ़न दूसरे तरीकों से दिखाई दे सकता है जैसे कि हाइफ़न किए गए शब्द, आपको अंडरस्कोर का उपयोग करके नाम मान को संरक्षित करने में अधिक सफलता मिलेगी। उदाहरण के लिए, यदि आपके पास "विंस्टन-सलेम, NC.jpg में ली गई तस्वीर" नामक एक फाइल है और आप रिक्त स्थान को अंडरस्कोर में बदलना चाहते हैं, तो आप नाम में हाइफ़न को संरक्षित कर सकते हैं और इसका अर्थ बनाए रख सकते हैं।

रिक्त स्थान उन लोगों के लिए समस्याएँ पैदा करते हैं जो कमांड लाइन का उपयोग उन्नत तरीके से करना चाहते हैं जैसे कि इस तरह के छोरों के लिए:

for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done

अगर वाइल्डकार्ड द्वारा मेल की गई किसी भी एमपी 3 फाइल में उनके नाम के स्पेस हैं, तो यह फाइलनेम को पूरे के बजाय सेक्शन में तोड़ देगा। आप BASH शेल के IFS चर को बदलकर या खोज कमांड का उपयोग करके इसे प्राप्त कर सकते हैं, लेकिन इसकी झुंझलाहट और बहुत से लोग इसे नहीं जानते हैं, इसलिए यह समस्या पैदा कर सकता है।

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


1
मैं पूरी तरह सहमत हूं। एक अच्छी तरह से निर्मित फ़ाइल नाम को कोई स्थान नहीं चाहिए।
DQdlM

4
@KennyPeanuts - लेकिन एक अच्छी तरह से लिखा कार्यक्रम रिक्त स्थान पर चोक नहीं करता है।
detly

2
@detly - touche '
DQdlM

1
@detly नहीं, एक अच्छा प्रोग्रामर समझता है कि आपको जो करना चाहिए और करना चाहिए, उसमें सीमाएं होनी चाहिए। यदि आप कहते हैं कि इसे रिक्त स्थान पर नहीं घूमना चाहिए, तो कोई व्यक्ति ऐसा कर सकता है और कह सकता है कि इसे पंक्ति के अंत में नहीं घुटना चाहिए, तो कोई यह कहेगा कि इसे / पर चोक नहीं करना चाहिए, तो कोई यह कह सकता है कि इसे चोक नहीं करना चाहिए फ़ाइल के अंत में। एक पुरानी कहावत है "विफलता के लिए सूत्र: हर किसी को खुश करने की कोशिश करें"।
deltaray

1
फाइलसिस्टम कल्पना आपको बताती है कि किससे कोड लेना है, अधिक नहीं, कम नहीं। उदाहरण के लिए, Ext2 / 3/4 पर, एक फ़ाइल नाम में किसी भी वर्ण को छोड़कर \0या \\\`. Coding to anything less than that is broken by design. So, no, it shouldn't choke on spaces, or EOL, or non-ASCII characters, or anything that isn't \ _` या `\ _ हो सकता है । फ़ाइल पथ हेरफेर के लिए पुस्तकालय कार्यों का उपयोग करने का तरीका है, क्योंकि कई अन्य लोग पहले से ही इन समस्याओं को हल कर चुके हैं।
detly

5

केवल कारण जो आपको अंडरस्कोर के बजाय हाइफ़न का उपयोग करने पर विचार करना चाहिए, बुनियादी पठनीयता के लिए है। बार-बार अंडरस्कोर पढ़ने को विकृत करते हैं, क्योंकि यह आपकी दृष्टि की रेखा को y- अक्ष के केंद्र से नीचे तक बदलता है। हाइफ़न हालांकि इसे आंखों पर आसान बनाते हैं।

जहां तक ​​ऑपरेटिंग सिस्टम को छुपाया जाता है, दोनों वर्ण समान रूप से मान्य हैं, और भागने की आवश्यकता नहीं है (जो रिक्त स्थान करते हैं, और इसलिए काम करने के लिए एक दर्द है)।


2
मुझे विशुद्ध रूप से व्यक्तिपरक होने की मूल पठनीयता का कारण लगता है। मुझे पढ़ने में आसान अंडरस्कोर लगता है क्योंकि मैं बहुत अधिक नेत्रहीन उन्हें अनदेखा कर सकता हूं- उन्हें नहीं पढ़ता- जबकि डैश मैं वास्तव में उन्हें पढ़ना है।
goliatone

3

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

इसलिए मेरे अधिकांश बिन / कार्यक्रमों या उपनामों के लिए मैं हाइफ़न का उपयोग करता हूं लेकिन जब यह अजगर कार्यक्रमों / मॉड्यूल लिखने की बात आती है - मैं अंडरस्कोर का उपयोग करता हूं।


2

किसी भी वेब-आधारित संदर्भ में हाइफ़न का उपयोग करने के अच्छे कारण हैं जो एक यूनिक्स फ़ाइल सिस्टम के लिए मैप करते हैं।

URL               What search indexes see
foo-baz-bang      foo baz bang
foo_baz_bang      foobazbang

एक वेब डेवलपर के रूप में, इसने मुझे शब्दों को अलग करते समय हाइफ़न के साथ रहने के लिए मजबूर किया है।


1
ऊपर उल्लिखित प्रसंग संभवत: अन्य चीजों के साथ-साथ संबंधित है - एक 2005 का मैट कट्स ब्लॉग पोस्ट जिसमें गूगल के एल्गोरिदम को वरीयता के लिए शामिल किया गया है। यह एक सफेद स्पेस प्लेसहोल्डर के बेहतर संकेतक के रूप में अंडरस्कोर है
जम्मिगल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.