फ़ाइलनाम क्यों हैं जो एक बिंदु के साथ छिपे हुए हैं? क्या मैं अपने पहले चरित्र के रूप में एक डॉट का उपयोग किए बिना फ़ाइलों को छिपा सकता हूं?


15

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


या "यदि आप चाहें तो सभी छिपे हुए फ़ाइल नाम डॉट से शुरू होते हैं?"
JMCF125

2
हाँ, यह एक सम्मेलन है, क्योंकि इसे क्यों चुना गया जो जानता है, यूनिक्स के अग्रदूतों से पूछें, यह एक पुराना सम्मेलन है।
terdon

4
इतिहास के पहलुओं के लिए छिपी हुई फाइलों और plus.google.com/101960720994009339267/posts/R58WgWwN9jp से संबंधित विकिपीडिया लेख पढ़ें । इसे बदला नहीं जा सकता।
जोफेल

मुझे लगा कि लिनक्स पूरी तरह से अनुकूलन योग्य था ...
JMCF125

1
@ JMCF125 वास्तव में यह टिप्पणी मेरे इरादे से थोड़ी अधिक व्यंग्यात्मक थी, इस बारे में खेद है। क्या आप वास्तव में पूछ रहे हैं: 'क्या मैं उनका नाम बदले बिना फाइलें छिपा सकता हूं?' - अगर ऐसा है, तो आपको इसे अपने प्रश्न में संपादित करना चाहिए।
ईविल्सअप

जवाबों:


26

विकिपीडिया के अनुसार ,

धारणा है कि फ़ाइल नाम से पहले। छिपा होना चाहिए यूनिक्स के शुरुआती दिनों में एक सॉफ्टवेयर बग का परिणाम है। जब विशेष .और ..निर्देशिका प्रविष्टियों को फाइलसिस्टम में जोड़ा गया था, तो यह तय किया गया था कि ls कमांड उन्हें प्रदर्शित नहीं करना चाहिए। हालांकि, कार्यक्रम गलती से किसी भी फाइल जिसका नाम एक साथ शुरू किया था बाहर करने के लिए लिखा गया था .चरित्र के बजाय सटीक नाम .या ..

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

यह भी तथ्य है कि अलग-अलग व्यवहार को लागू करने से * निक्स दुनिया में विखंडन की एक भी बड़ी मात्रा का उत्पादन होगा, जो कि आखिरी चीज है जो कोई भी चाहता है।

फ़ाइलों को छिपाने के लिए एक और तरीका है जिसमें उनका नाम बदलना शामिल नहीं है, लेकिन यह केवल GUI फ़ाइल प्रबंधकों के लिए काम करता है (और यह उन लोगों के बीच सार्वभौमिक नहीं है - प्रमुख लिनक्स वाले इसका उपयोग करते हैं, लेकिन मुझे नहीं लगता कि OSX का खोजक करता है, और अधिक आला लिनक्स फ़ाइल प्रबंधक इस व्यवहार का समर्थन करने की संभावना कम है): आप नामक एक फ़ाइल बना सकते हैं .hidden, और उन फ़ाइलनामों को डाल सकते हैं जिन्हें आप इसके अंदर छिपाना चाहते हैं, एक प्रति पंक्ति। lsऔर शेल ग्लब्स इसका सम्मान नहीं करेंगे, लेकिन यह आपके लिए उपयोगी हो सकता है, फिर भी।


हालांकि यह छिपाना एकता पर काम नहीं करता है। लेकिन जैसा कि आपने सीधे सभी प्रश्नों को संबोधित किया है, मैं इसे स्वीकृत उत्तर के रूप में चिह्नित करूंगा (हालांकि मैंने दोनों उत्तरों को उत्कीर्ण किया है)।
JMCF125

3
विकिपीडिया पृष्ठ पर अब इस बारे में जानकारी नहीं है। हालाँकि, रॉब पाइक ने UNIX पर बेल लैब्स में काम किया और इस विषय के बारे में एक संक्षिप्त पोस्ट किया: plus.google.com/u/0/+RobPikeTheHuman/posts/R58WgWwN9jp
अलेक्जेंडर


14

डॉट के साथ शुरू होने वाली फाइलें "ls" कमांड द्वारा डिफ़ॉल्ट रूप से नजरअंदाज कर दी जाती हैं , जिसमें कम या ज्यादा "छिपी" फाइलों का समान प्रभाव होता है, लेकिन समान नहीं है (अन्य कमांड ऐसा करने या न करने का विकल्प चुन सकते हैं)। डॉट के साथ शुरू होने वाली फाइलें "छिपी" नहीं हैं, क्योंकि "छिपी" उनकी विशेषताओं में से एक नहीं है। डॉस / विंडोज के विपरीत, यूनिक्स में "छिपी" एक विशेषता नहीं है। यूनिक्स में कई विशेषताएं हैं ("मैन चैटर" आपको उन सभी को बताएगा) लेकिन छिपी उनमें से एक नहीं है।

"Ls" द्वारा डॉट-फाइल्स को नजरअंदाज करने का कारण वास्तव में काफी मजाकिया / शर्मनाक है। यह एक डिजाइन निर्णय नहीं था, बल्कि यूनिक्स के शुरुआती दिनों में एक सॉफ्टवेयर बग का परिणाम था । जब विशेष और .. डायरेक्टरी प्रविष्टियाँ फाइलसिस्टम में जोड़ी गईं, यह निर्णय लिया गया कि ls कमांड उन्हें प्रदर्शित नहीं करना चाहिए क्योंकि वे रास्ते में मिल रहे थे। हालाँकि, किसी भी फाइल को बाहर करने के लिए कार्यक्रम जल्दबाजी में लिखा गया था जिसका नाम a से शुरू हुआ था। चरित्र, सटीक नामों के बजाय "।" या ".."। और इसने एक मिसाल कायम की जिसके बाद से यूनिक्स में इसका अनुसरण किया गया। मजेदार रूप से पर्याप्त है, जब यूनिक्स के लोग प्लान 9 बनाने के लिए आगे बढ़े, तो उन्होंने इसमें उद्देश्य से डॉट-फाइलें नहीं डालीं


मैंने कोशिश की man chattr, हालांकि मुझे लगा कि शायद मुझे कुछ पैकेज या विशिष्ट कार्यक्रम की आवश्यकता होगी ताकि अन्य छिपी हुई फाइलें संभव हो सकें।
JMCF125

0

आप फ़ाइलों को छिपा सकते हैं या नहीं, और किन शर्तों पर, आपके द्वारा उपयोग किए जा रहे फाइलसिस्टम और उसके चालक पर निर्भर करता है। पारंपरिक यूनिक्स फाइल सिस्टम में फाइलों के लिए "छिपाने" की विशेषता नहीं होती है।

एक फाइलसिस्टम ड्राइवर किसी भी फाइल को छिपा सकता है जिसे वह चाहता है, केवल उनके नाम को छोड़ कर जब यह सिस्टम कॉल के लिए परिणाम प्रदान करता है जिसका उपयोग निर्देशिका लिस्टिंग प्राप्त करने के लिए किया जाता है। जैसा कि उनके जवाब में वर्णित सेरगुट, एक डॉट के साथ शुरू होने वाली फाइलें वास्तव में छिपी नहीं हैं।

(यह भी है कि रूटकिट्स अपनी फ़ाइलों को कैसे छिपा सकते हैं: वे सिस्टम कॉल में हुक करते हैं जो निर्देशिका लिस्टिंग का उत्पादन करते हैं, और उन फ़ाइलों को फ़िल्टर करते हैं जिन्हें वे छिपाना चाहते हैं।)

उदाहरण के लिए, ओरेकल एसीएफएस क्लस्टर फाइल सिस्टम में, निर्देशिका <filesystem mountpoint>/.ACFS/वास्तव में छिपी हुई है: यह सिर्फ सूचीबद्ध नहीं होगी, यहां तक ​​कि इसके साथ भी नहीं ls -a। लेकिन अगर आपको पता है कि यह वहां है, तो आप इसे ठीक कर सकते हैं।

यदि आप ACFS फाइलसिस्टम के स्नैपशॉट फीचर का उपयोग कर रहे हैं, तो आप उस फाइलसिस्टम के किसी भी मौजूदा फाइल सिस्टम स्नैपशॉट को उस .ACFSनिर्देशिका के माध्यम से एक्सेस कर सकते हैं । यदि यह छिपा नहीं था, तो एक बैकअप प्रोग्राम फाइल सिस्टम की वर्तमान सामग्री और किसी भी मौजूदा स्नैपशॉट की सामग्री का समर्थन कर सकता है, जो संभवतः अवांछनीय होगा; आम तौर पर आप या तो वर्तमान स्थिति या एक विशिष्ट स्नैपशॉट की स्थिति का बैकअप लेना चाहेंगे।

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