लिनक्स दोनों केस सेंसिटिव और केस असंवेदनशील और हमेशा असुविधाजनक?


8

मैं Ubuntu 10 का उपयोग कर रहा हूं और मुझे जल्दी से पता चल रहा है कि जब यह इसके लिए असुविधाजनक है, तो यह संवेदनशील है (जैसे कि जब टर्मिनल में टैब के साथ ऑटोकॉम्पलेटिंग फाइल पथ), लेकिन एमवी और सीपी कमांड का उपयोग करते समय भी असंवेदनशील (भी असुविधाजनक) जब एक अलग मामले के साथ एक फ़ाइल नाम की नकल करने की कोशिश की जा रही है)।

संक्षेप में, मुझे काम करने के लिए इस कमांड की आवश्यकता है लेकिन यह नहीं है।

cp ./filename.txt ./FileName.txt

मैं अभी समाप्त करता हूं filename.txt:

यहाँ छवि विवरण दर्ज करें

मैं एक ही फ़ाइल को एक अलग मामले के साथ एक ही निर्देशिका में एक ही नाम कैसे प्राप्त कर सकता हूं?

संपादित करें: नीचे Maerics की टिप्पणी ने मुझे यह याद रखने में मदद की कि मैं वास्तव में NTFS चलाने वाले एक विंडोज साझा ड्राइव पर विकसित कर रहा हूं जो कि केस इन्सेन्सिटिव है। यही कारण है कि भले ही सीपी और एमवी एक त्रुटि उत्पन्न नहीं करते हैं, फ़ाइल की प्रतिलिपि नहीं बनाई गई है (या अधिक संभावना है कि आईएस की प्रतिलिपि बनाई गई है, लेकिन विंडोज पहले से मौजूद डेटा को बदल देता है)।


1
यह अजीब है: मैंने आश्चर्य के बिना इस आदेश का परीक्षण किया ... मुझे एक ही निर्देशिका में विभिन्न मामलों के साथ कोई समस्या नहीं है।
डेसीस सेटरेट

5
ध्यान दें कि यह व्यवहार उस फ़ाइल सिस्टम के प्रकार पर निर्भर हो सकता है जिस पर ये फ़ाइलें मौजूद हैं। उदाहरण के लिए, FAT32 इन फ़ाइलनामों में अंतर नहीं कर सकता है।
मैरिकिक्स

वाह। यह उत्तर Maerics था। फ़ाइलों को एक आरोहित ड्राइव पर संग्रहीत किया जाता है जो NTFS चल रहा है। मैं पूरी तरह से भूल गया जब से मैं क्रॉस प्लेटफ़ॉर्म विकसित कर रहा हूं कि मैं फ़ाइलों को संग्रहीत करने के लिए विंडोज का उपयोग कर रहा हूं।
अनोन ५ 19:१

1
@advocate: NTFS केस-संवेदी है, इसलिए आपको इसे अपनी इच्छानुसार माउंट करने में सक्षम होना चाहिए। हालांकि, सवाल यह है कि क्या आप चाहते हैं :)
0xC0000022L

परीक्षण दिखा रहा है कि विंडोज 7 केस संवेदी नहीं है।
अनोन 58192932

जवाबों:


5

NTFS 1 और VFAT केस-संवेदी नहीं हैं, वे केवल केस-प्रोटेक्टिंग हैं। इसका मतलब है कि यदि आप नाम से एक फ़ाइल बनाते हैं FileName.txt, तो फ़ाइल सिस्टम मिश्रित केस नाम को संरक्षित करेगा, लेकिन आप फ़ाइल को उसी अक्षरों के संयोजन के साथ एक्सेस कर सकते हैं, जैसे FILENAME.TXT, filename.txtया fileNAME.txt। यह बताता है कि आपके पास एक ही निर्देशिका में केवल ऊपरी / निचले मामले की भिन्नता के साथ एक ही वर्तनी वाली दो फाइलें नहीं हो सकती हैं।

SMB निर्यातित फ़ाइल सिस्टम को विंडोज क्लाइंट को भ्रमित करने के लिए इस व्यवहार को लागू नहीं करना पड़ता है।

casesensitivity=mixedसंपत्ति के साथ उस तरह का व्यवहार करने के लिए ZFS को कॉन्फ़िगर किया जा सकता है ।

1 तकनीकी रूप से, NTFS केस सेंसिटिव है, लेकिन इस प्रकार के OS बढ़ते फाइल सिस्टम लगभग हमेशा इस अंतर्निहित सुविधा को छिपाने के लिए कॉन्फ़िगर किए जाते हैं और केवल केस को संरक्षित करते हैं। हालाँकि, Windows इस रजिस्टर कुंजी को संशोधित करने के साथ केस सेंसिटिविटी को सक्षम कर सकता है HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\dword:ObCaseInsensitiveऔर Linux इन फाइल सिस्टम को विभिन्न व्यवहारों के साथ माउंट ignore_caseऔर windows_namesविकल्प के आधार पर माउंट कर सकता है।


3
NTFS बिल्कुल है केस-संवेदी। हालाँकि, Win32 केस-संवेदी नहीं है, इसलिए व्यावहारिक कारणों से अधिकांश लोगों का मानना ​​है कि NTFS नहीं है।
कोडी ग्रे

@ कोडीग्रे यस, योर राइट, इस फीचर को इंगित करने के लिए धन्यवाद। अंतर्निहित NTFS फ़ाइल सिस्टम विभिन्न फ़ाइल नामों को केवल मामले से अलग करने की अनुमति देता है।
जूलियरे

11

आप निम्नलिखित लाइन को जोड़कर केस-असंवेदनशील फ़ाइल नाम को bash में पूरा कर सकते हैं $HOME/.inputrc:

set completion-ignore-case On

फ़ाइल नामों के बारे में: यह फ़ाइल सिस्टम पर निर्भर करता है। लिनक्स फाइल सिस्टम पर, कोई समस्या नहीं होनी चाहिए। अन्य फाइल सिस्टम पर, माउंट कमांड के विकल्प के साथ व्यवहार को नियंत्रित किया जा सकता है। mount(8)माउंट करने के लिए उपलब्ध विकल्पों के बारे में अधिक जानकारी के लिए मैनुअल पेज देखें ।


तुम सही हो। अंतर्निहित फ़ाइल सिस्टम सीपीयू और एमवी काम करते समय लिनक्स फाइल सिस्टम नहीं था, विंडोज पहले से मौजूद फाइल (जब केस इनसर्विसिटी के कारण ओवरराइडिंग) रखता है, तो यह यूनिक्स टर्मिनल में प्रकट होता है जैसे कि कमांड बिल्कुल भी काम नहीं करता है। । इसके अलावा, पूरा होने वाले अनदेखी मामले के लिए धन्यवाद, जो बहुत मदद करेगा!
अनोन ५ 19:१

क्या 'ऑन' मामला संवेदनशील है? ;)
अरज

अफसोस की बात यह है कि यह आपको एक स्क्रिप्ट में मदद नहीं करेगा।
श्रीधर सरनोबत २०

2

यह फाइलसिस्टम का गुण है या कुछ और?

pa-ubuntu-11388$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:        10.04
Codename:       lucid
pa-ubuntu-11388$ ls -l
pa-ubuntu-11388$ touch filename.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt
pa-ubuntu-11388$ cp ./filename.txt ./FileName.txt
pa-ubuntu-11388$ ls -l
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 FileName.txt
-rw-r--r-- 1 dshawley dev 0 May 31 15:17 filename.txt

यह मेरे लिए ठीक काम करता है।


ऊपर के मैरिकिक्स ने मुझे समस्या को हल करने में मदद की। मैं उबंटू में विकसित कर रहा हूं एक विंडोज़ -> लिनक्स पोर्ट लेकिन फाइलें विंडोज कंप्यूटर पर संग्रहीत हैं और मैं भूल गया था कि मेरे पास ड्राइव माउंट था। अंतर्निहित NTFS एक ही समय में दोनों फ़ाइलों को मौजूदा से रोक रहा था।
अनोन ५ 19:१

1

उबंटू आंशिक रूप से संवेदनशील नहीं है। यह हमेशा संवेदनशील मामला है। filename.txtऔर Filename.txtदो अलग-अलग फाइलें हैं और उन्हें उसी निर्देशिका में रखा जा सकता है। तो यह आदेश:

cp ./filename.txt ./FileName.txt

एक ही निर्देशिका में किसी भी समस्या के बिना काम करेंगे।


हालांकि यह नहीं है। मैं पिछले एक घंटे से इसका पता लगाने की कोशिश कर रहा हूं।
अनोन ५ 19:१

2
हो सकता है, आपके पास filename.txtउर वर्तमान निर्देशिका में ही न हो ?
पीपी

यह निश्चित रूप से वहाँ है।
अनोन 58192932

ऊपर के मैरिकिक्स ने मुझे समस्या को हल करने में मदद की। मैं उबंटू में विकसित कर रहा हूं एक विंडोज़ -> लिनक्स पोर्ट लेकिन फाइलें विंडोज कंप्यूटर पर संग्रहीत हैं और मैं भूल गया था कि मेरे पास ड्राइव माउंट था। अंतर्निहित NTFS एक ही समय में दोनों फ़ाइलों को मौजूदा से रोक रहा था।
आनन ५ 19:१

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