मैं पहली बार "एलएस" शो कैसे बना सकता हूं और यूनिकोड फाइलनाम को संरक्षित कर सकता हूं?


5
$ export LC_ALL=en_US.UTF-8
$ ls -al
total 24
drwxr-xr-x 6 pi pi 4096 Jul 23 16:34 .
drwxr-xr-x 9 pi pi 4096 Jul 23 16:33 ..
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .A
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 B
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .C
drwxr-xr-x 2 pi pi 4096 Jul 23 16:34 你好嗎

जब मैं बदलता हूं LC_ALL सेवा मेरे C, डॉट फाइल्स को पहले सूचीबद्ध किया जाता है, यूनिकोड फाइलनेम से अपठनीय हैं:

$ export LC_ALL=C
$ ls -al
total 24
drwxr-xr-x 6 pi pi 4096 Jul 23 16:34 .
drwxr-xr-x 9 pi pi 4096 Jul 23 16:33 ..
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .A
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .C
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 B
drwxr-xr-x 2 pi pi 4096 Jul 23 16:34 ?????????

मैं पहली बार "एलएस" शो कैसे बना सकता हूं और यूनिकोड फाइलनाम को संरक्षित कर सकता हूं?

अद्यतन, पाया समाधान (Ярослав Рахматуллин के जवाब के लिए धन्यवाद):

$ cat /etc/default/locale 
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_COLLATE=C

रिबूट, शो env:

$ env | grep -E 'LANG|LC'
LC_COLLATE=C
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE=en_US.UTF-8

अपेक्षा के अनुसार छँटाई:

$ ls -al
total 24
drwxr-xr-x 6 pi pi 4096 Jul 23 16:34 .
drwxr-xr-x 9 pi pi 4096 Jul 24 08:29 ..
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .A
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 .C
drwxr-xr-x 2 pi pi 4096 Jul 23 16:33 B
drwxr-xr-x 2 pi pi 4096 Jul 23 16:34 你好嗎

से कोई चेतावनी नहीं perl -v:

$ perl -v

This is perl 5, version 14, subversion 2 (v5.14.2) built for arm-linux-gnueabihf-thread-multi-64int
(with 80 registered patches, see perl -V for more detail)

Copyright 1987-2011, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

आपके पास कौन से टर्मिनल एमुलेटर और वर्चुअल्स का संस्करण है?
Ярослав Рахматуллин

जवाबों:


0

ओहो, आपकी धारणा गलत लगती है। यही है, मैं LC_ALL के बिना भी चीनी फ़ाइलों को सूचीबद्ध कर सकता हूं।

wraptor: ~/tmp/god-damn-mongorians
$ LC_ALL=C

$ ll
-rw-r--r-- 1 0K 2013-07-23 12:50 ??????????????????

$ unset LC_ALL

$ ll
-rw-r--r-- 1 0K 2013-07-23 12:50 我很好,谢谢

$ LANG=en_US.iso-8859-1

$ ll
-rw-r--r-- 1 0K 2013-07-23 12:50 ?▒???▒??好?▒??谢?谢

अपने लक्ष्य को प्राप्त करने के लिए आप LANG (या LANGUAGE) को UTF एन्कोडिंग वाले लोकेल में सेट करना चाहते हैं और LC_COLLATE को सेट करें जैसा कि हमारे स्वीडिश मित्र ने सुझाया था।

$ ll -a
drwxr-xr-x+ 1 0K 2013-07-23 12:50 .
drwxr-xr-x  1 0K 2013-07-23 12:48 ..
-rw-r--r--  1 0K 2013-07-23 12:50 ?▒???▒??好?▒??谢?谢

$ LANG=en_US.utf-8
$ LC_COLLATE=C    

$ ll -a
drwxr-xr-x+ 1 0K 2013-07-23 12:50 .
drwxr-xr-x  1 0K 2013-07-23 12:48 ..
-rw-r--r--  1 0K 2013-07-23 12:50 我很好,谢谢

अद्यतन करें: टिप्पणी में अनुरोध के अनुसार तीन फ़ोल्डर बनाए।

Mintty

एक देशी विंडोज़ बाइनरी के रूप में लॉन्च किया गया।

mintty

URxvt

लैपटॉप से ​​लॉन्च किया, सिगविन में एक्सविन के तहत प्रदर्शित किया गया। ध्यान दें कि LC_COLLATE सेट होने पर फाइलें "सही ढंग से" सॉर्ट की जाती हैं।

urxvt

एक VM में Ubuntu वर्चुअल कंसोल

VC


कृपया 3 फ़ोल्डर बनाएं: mkdir .A mkdir B mkdir .C, यूनिकोड वर्ण दिखाने के अलावा, मैं पहले डॉटफाइल्स को सूचीबद्ध करना चाहता हूं।
ohho

@ मोहो ज़रूर। किया हुआ।
Ярослав Рахматуллин

不客气 :) मैं एन्कोडिंग मुद्दों से बहुत थक गया हूँ ...
Ярослав Рахматуллин

5

लोकल C UTF-8 नहीं करता है। यदि आप उचित समतलीकरण सेटिंग्स के साथ UTF-8-जागरूक लोकेल का उपयोग करते हैं, तो ए ls मंगलाचरण का व्यवहार करना चाहिए जैसा कि आप उम्मीद करते हैं। (आप अपने स्वयं के लोकेल का निर्माण कर सकते हैं, यदि आप अपने आप को अक्सर इस तरह का काम करते हुए पाते हैं। एक लोकेल के उदाहरण के लिए, जो अन्य स्थानों से कुछ हिस्सों में लाता है, आप देखना चाहते हैं। en_SE ।)

अगर आप केवल चाहते हैं तरह सी लोकेल के अनुसार, आपको LC_ALL (जो कि ए वैश्विक ओवरराइड अन्य सभी LC_ * सेटिंग्स के लिए, इसलिए नाम) लेकिन बस सेट कर सकते हैं LC_COLLATE, जो छँटाई को प्रभावित करता है (लिंक AIX के लिए है, लेकिन समग्र विवरण सामान्य है)। उस स्तिथि में, LC_COLLATE=C ls -al आप जो चाहते हैं उसके काफी करीब होना चाहिए।


अगर मैं unset LC_ALL, यूनिकोड फ़ाइलनाम दिखाई नहीं देंगे। किसमें से एक LC_* फ़ाइल नाम एन्कोडिंग को नियंत्रित करता है?
ohho
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.