निम्न फ़ाइलों को एक निर्देशिका में बनाएँ।
$ touch .a .b a b A B 你好嗎
मेरा डिफ़ॉल्ट ls
आदेश प्रमुख डॉट्स की उपस्थिति को अनदेखा करता है, उन्हें अन्य फाइलों के साथ इंटरलामिंग करता है।
$ ls -Al
total 0
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 A
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 B
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:06 你好嗎
मैं पहले बिंदी लगाने के लिए बदल सकता हूं । LC_COLLATE
$ LC_COLLATE=C ls -Al
total 0
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 A
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 B
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:06 你好嗎
दुर्भाग्य से यह क्रम क्रम को संवेदनशील बनाता है, अर्थात A
और B
पूर्ववर्ती a
और b
। क्या केस-असंवेदनशील ( A
और a
पूर्ववर्ती B
और b
) रहते हुए पहले डॉटफाइल्स को प्रिंट करने का कोई तरीका है ?
संपादित करें: LC_COLLATE को संशोधित करने का प्रयास
अब तक कोई भी उत्तर पूरी तरह से ls
आसानी से कार्यक्षमता को दोहराता नहीं है । जाहिर है, मैं उनमें से कुछ को एक फ़ंक्शन में लपेट सकता हूं, लेकिन इसमें कुछ विस्तृत कोड को शामिल करना होगा (जैसे) बिना तर्क के कैसे काम करना है / एक निर्देशिका के रूप में एक तर्क की आपूर्ति करना। या एक स्पष्ट -d
ध्वज से कैसे निपटना है ।
वैकल्पिक रूप से, मैंने सोचा कि शायद LC_COLLATE
उपयोग करने के लिए बेहतर हो सकता है । हालाँकि, मैं यह काम नहीं कर सकता। मैं वर्तमान में उपयोग कर रहा हूं LC_COLLATE="en_AU.UTF-8"
। मैंने जाँच की /usr/share/i18n/locales/en_AU
(हालाँकि मुझे यकीन नहीं है कि यह सही फ़ाइल है, क्योंकि मैं कोई संदर्भ नहीं देख सकता UTF-8
); मैंने निम्नलिखित पाया।
LC_COLLATE
copy "iso14651_t1"
END LC_COLLATE
/usr/share/i18n/locales/iso14651_t1
होता है copy "iso14651_t1_common"
। अंत में, /usr/share/i18n/locales/iso14651_t1_common
शामिल है
<U002E> IGNORE;IGNORE;IGNORE;<U002E> # 47 .
मैंने यह लाइन हटाई sudo locale-gen
, अपने कंप्यूटर को चलाया , और फिर से शुरू किया। दुर्भाग्य से, यह कुछ भी नहीं बदला।