मैं पहले अंडरस्कोर वाले फ़ोल्डर्स को कैसे सूचीबद्ध करूं?


23

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

उदाहरण के लिए, मेरे eBooks फ़ोल्डर में (विंडोज में) कुछ इस तरह दिखता है:

_read
      Book1.pdf
      Book2.pdf
_reading
      Book3.pdf
Book4.pdf
Book5.pdf

लेकिन उबंटू के नॉटिलस में ऐसा दिखता है:

Book4.pdf
Book5.pdf    
_read
      Book1.pdf
      Book2.pdf
_reading
      Book3.pdf

यह क्या हो रहा है कि यह पूरी तरह से अंडरस्कोर को नजरअंदाज कर रहा है और यह "_read" को "पढ़ा" के रूप में मानता है और इसलिए पहले इसे इच्छानुसार सूचीबद्ध नहीं करता है।

मैंने पर्यावरण चर LC_COLLATE को C पर सेट करने का प्रयास किया है। यह किसी भी तरह से मदद करता है क्योंकि यह अंडरस्कोर को एक साथ सूचीबद्ध करता है, लेकिन अंत में, और शुरुआत में नहीं।

धन्यवाद।


क्या आप एक स्क्रीनशॉट शामिल कर सकते हैं?
philshem

के संभावित डुप्लिकेट askubuntu.com/questions/115741/... हालांकि मुझे लगता है कि @ maggotbrain का जवाब एक से बेहतर है प्रस्तुत वहाँ।
रुदिवोन्स्टेन

जवाबों:


16

चूंकि आपने उस स्थान को निर्दिष्ट नहीं किया है जिसे आप वर्तमान में उपयोग कर रहे हैं, यह समाधान मानता है कि आप en_US.UTF-8अपने डिफ़ॉल्ट के रूप में उपयोग कर रहे हैं ।

आप localeकमांड लाइन ( Ctrl+ Alt+ t) से कमांड चलाकर इसे चेक कर सकते हैं ।

उदाहरण के लिए:

~ $ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

वह चर जो फ़ाइलों के क्रमबद्ध क्रम को प्रभावित करता है, LC_COLLATE कहलाता है

उबंटू सहायता पृष्ठों के अनुसार , LC_COLLATE चर निर्धारित करता है कि "कैसे तार (फ़ाइल नाम ...) वर्णानुक्रम में सॉर्ट किए जाते हैं। यहां" C "या" POSIX "लोकेल का उपयोग करने से एक strcmp () - जैसे क्रमबद्ध क्रम होता है, जो हो सकता है। भाषा-विशिष्ट स्थानों के लिए बेहतर। "

सॉर्ट क्रम से परिवर्तित करने की आवश्यकता होगी LC_COLLATE="en_US.UTF-8"करने के लिए LC_COLLATE=C

कमांड लाइन ( Ctrl+ Alt+ t) से, दर्ज करें:

update-locale LC_COLLATE=C

महत्वपूर्ण: आपको अपने सिस्टम से लॉग आउट करना होगा और फिर परिवर्तनों को प्रभावी करने के लिए वापस लॉग इन करना होगा

localeकमांड को फिर से चलाना , यह दिखाना चाहिए कि LC_COLLATEचर को सफलतापूर्वक बदल दिया गया है। ls -lफिर से कमांड चलाना इस बदलाव को दर्शाता है।


1
मैंने C से पहले ही LC_COLLATE सेट कर दिया है, जैसा कि मैंने अपने प्रश्न के अंतिम पैराग्राफ में वर्णित किया है। फिर भी, मुझे टर्मिनल और नॉटिलस एक्सप्लोरर दोनों में अलग-अलग परिणाम मिल रहे हैं और मैंने इस बीच कंप्यूटर को रिबूट किया है। किसी भी विचार क्यों हो रहा है?
नूनोस

@nunos क्या आपके पास कोई भी उपनाम lsआपके लिए निर्धारित है .bashrc?
केविन बोवेन

@ ननोस दिलचस्प। आप किस फ़ाइल सिस्टम प्रकार की जाँच कर रहे हैं? एकमात्र स्थान जो मेरे पास ls -lछँटाई के साथ समस्या है वह एक ntfs स्वरूपित ड्राइव पर है जो LC_COLLL चर का सम्मान करने के लिए प्रकट नहीं होता है। मेरे सभी ext3 फाइलसिस्टम का सम्मान करने के लिए लगता है कि ls कमांड के साथ-साथ थूनर और नॉटिलस का उपयोग करके सेटिंग करना।
केविन बोवेन

तब समस्या बहुत अच्छी हो सकती है। मैं ls -lNTFS ड्राइव पर कमांड का उपयोग कर रहा हूं , क्योंकि मेरे पास विंडोज़ के साथ एक दोहरी बूट है।
नूनोस

2
update-locale LC_COLLATE=Cयदि आप अपने फ़ोल्डर नामों की शुरुआत में बड़े अक्षरों का उपयोग करते हैं, तो क्रमबद्ध सूची के शीर्ष पर अंडरस्कोर के साथ फ़ोल्डर प्राप्त करने में मदद नहीं करता है !
मालिसोकन

1

काजा (और मुझे लगता है कि इससे पहले Nautilus) फ़ाइलों से पहले फ़ोल्डर्स को सॉर्ट करने के लिए वरीयताएँ में एक विकल्प है। क्या इससे मदद मिलेगी?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.