ফাইলের নাম বাছাই করার সময়, ls
পছন্দ মতো অক্ষরকে উপেক্ষা করে -,_
। আমি প্রত্যাশা করেছি যে এটি অক্ষরগুলি বাছাইয়ের ক্ষেত্রেও ব্যবহার করবে।
একটি উদাহরণ:
touch a1 a2 a-1 a-2 a_1 a_2 a.1 a.2 a,1 a,2
এখন এই ফাইলগুলি এর সাথে প্রদর্শন করুন ls -1
:
a1
a_1
a-1
a,1
a.1
a2
a_2
a-2
a,2
a.2
আমি যা প্রত্যাশা করছিলাম তা এই জাতীয় কিছু ছিল:
a1
a2
a,1
a,2
a.1
a.2
a_1
a_2
a-1
a-2
অর্থাত্ আমি বাছাই করার সময় অ-অক্ষর অক্ষরগুলি বিবেচনায় নেওয়ার প্রত্যাশা করেছি।
কেউ কি এই আচরণ ব্যাখ্যা করতে পারেন? এই আচরণটি কি কোনও মানদণ্ড দ্বারা বাধ্যতামূলক? অথবা এটি এনকোডিংটি ইউটিএফ -8 হওয়ার কারণে?
আপডেট: মনে হচ্ছে এটি ইউটিএফ -8 বাছাইয়ের সাথে সম্পর্কিত:
$ LC_COLLATE=C ls -1
a,1
a,2
a-1
a-2
a.1
a.2
a1
a2
a_1
a_2
[_-,.]
দলবদ্ধ করা হচ্ছে এবং কোনওভাবে আধা-উপেক্ষা করা হচ্ছে। আমি জানি না ঠিক কীভাবে বা কোথাও এই জাতীয় সংশ্লেষ সংজ্ঞায়িত করা হয়েছে, তবে এটি অবশ্যই একটি কোলেশন ইস্যু হতে হবে, কারণ কেবল এবং কেবলমাত্র কোলেশন সি (মাধ্যমে LC_COLLATE=C ls -l
) পরিবর্তন করা আপনাকে প্রত্যাশিত সাজান অর্ডার দেওয়ার জন্য যথেষ্ট ( LC_ALL
যেমন ধরে নেওয়া হচ্ছে ) ওভাররাইডিং নয় LC_COLLATE
)। এটি ইউনিকোড বেসিক বহুভাষিক বিমানের সম্পূর্ণ পরিসরের অক্ষরের জন্য সত্য ... আমি আমার উত্তরটি সম্পাদনা করে একটি উদাহরণ স্ক্রিপ্ট অন্তর্ভুক্ত করতে যা এতে উপস্থিত রয়েছে ...
LC_COLLATE=C ls
?