मेरे पास निर्देशिकाओं और उपनिर्देशिकाओं का एक समूह है जिसमें विशेष वर्णों वाली फाइलें हैं, जैसे कि यह फाइल:
robbie@phil:~$ ls test�sktest.txt
test?sktest.txt
एक बच निकलने के क्रम का पता लगाएं:
robbie@phil:~$ find test�sktest.txt -ls
424512 4000 -rwxr--r-x 1 robbie robbie 4091743 Jan 26 00:34 test\323sktest.txt
एकमात्र कारण मैं कंसोल पर उनके नाम भी लिख सकता हूं क्योंकि टैब पूरा होने के कारण। इसका मतलब यह भी है कि मैं उन्हें मैन्युअल रूप से नाम बदल सकता हूं (और विशेष चरित्र को छीन सकता हूं)।
मैंने LC_ALL को UTF-8 में सेट किया है, जो मदद के लिए नहीं लगता है (एक नए शेल पर भी नहीं))
robbie@phil:~$ echo $LC_ALL
en_US.UTF-8
मैं अपने मैक से ssh का उपयोग करके मशीन से जुड़ रहा हूं। यह एक Ubuntu स्थापित है:
robbie@phil:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=7.10
DISTRIB_CODENAME=gutsy
DISTRIB_DESCRIPTION="Ubuntu 7.10"
शेल बैश है, TERM को xterm-color में सेट किया गया है।
ये फाइलें काफी समय से हैं, और वे उबंटू की स्थापना का उपयोग करके नहीं बनाई गई हैं। इसलिए मुझे नहीं पता कि सिस्टम एन्कोडिंग सेटिंग्स क्या हुआ करती थी।
मैंने इनकी तर्ज पर चीजों की कोशिश की है:
find . -type f -ls | sed 's/[^a-zA-Z0-9]//g'
लेकिन मुझे ऐसा समाधान नहीं मिल रहा है जो मैं चाहता हूं कि सब कुछ हो:
- उन सभी फ़ाइलों को पहचानें जिनके अविभाज्य अक्षर हैं (उपरोक्त उपेक्षा बहुत अधिक है)
- निर्देशिका ट्री (पुनरावर्ती) में उन सभी फ़ाइलों के लिए, mv oldname newname निष्पादित करें
- वैकल्पिक रूप से, विशेष पात्रों जैसे ä to a (आवश्यक नहीं है, लेकिन भयानक होगा) के अनुवाद की क्षमता
या
- इन सभी फ़ाइलों को सही ढंग से प्रदर्शित करें (और जब उन्हें खोलने की कोशिश में कोई त्रुटि न हो)
मेरे पास बिट्स और टुकड़े हैं, जैसे सभी फाइलों पर चलना और उन्हें स्थानांतरित करना, लेकिन फाइलों की पहचान करना और उन्हें एमवी कमांड के लिए सही ढंग से प्रारूपित करना कठिन हिस्सा लगता है।
कोई भी अतिरिक्त जानकारी क्यों वे सही ढंग से प्रदर्शित नहीं करते हैं, या सही एन्कोडिंग का "अनुमान" कैसे किया जाता है, इसका भी स्वागत है। (मैंने convmv की कोशिश की है, लेकिन यह बिल्कुल वैसा नहीं लगता जैसा मैं चाहता हूं: http://j3e.de/linux/convv/ )