कुछ फाइलें और फ़ोल्डर्स क्यों छिपाए गए हैं?


12

मैं /home/userनिर्देशिका में फ़ाइलों और फ़ोल्डरों को छिपाने के औचित्य को समझ सकता हूं ताकि उपयोगकर्ताओं को चीजों के साथ खिलवाड़ करने से रोका जा सके। हालाँकि, मैं यह नहीं देखता कि कैसे एक ही तर्क को फाइलों में लागू किया जा सकता है /etc, /bootऔर /varनिर्देशिका जो प्रशासकों का डोमेन है।

मेरा सवाल यह है कि कुछ फाइलें और फ़ोल्डर प्रशासकों से क्यों छिपाए गए हैं? उदाहरण:

/boot/.vmlinuz-3.11.1-200.fc20.x86_64.hmac
/etc/.pwd.lock
/etc/selinux/targeted/.policy.sha512
/etc/.java
/etc/.java/.systemPrefs
/etc/skel/.bash_profile
/root/.ssh
/root/.config
/var/cache/yum/x86_64/20/.gpgkeyschecked.yum
/var/spool/at/.SEQ
/var/lib/pear/.filemap


1
दूसरा उत्तर देखो। आपके द्वारा सूचीबद्ध उन फ़ाइलों का कारण या तो वे कॉन्फ़िगर की गई फाइलें हैं जिन्हें दैनिक रूप से परिवर्तित नहीं किया जाना चाहिए और हमेशा .ssh और .bash_profile के रूप में मौजूद होती हैं ताकि आप नहीं जान सकें कि वे वहां हैं। यह सिर्फ एक सम्मेलन है। स्पूल में फाइलें
टेम्प

3
.ssh और .config को हमेशा नाम दिया जाता है, चाहे वे सामान्य उपयोगकर्ता की होम निर्देशिका में हों या रूट उपयोगकर्ता के होम निर्देशिका में। / etc / skel को नए उपयोगकर्ताओं के होम डाइरेक्टरी के लिए एक प्रोटोटाइप माना जाता है, और फ़ाइलों का वही नाम होता है जैसा कि वे नए बनाए गए डायरेक्टरी में होते हैं।
मार्क प्लॉटनिक

2
लेकिन वे फाइलें छिपी नहीं हैं । lsआदेश सिर्फ डिफ़ॉल्ट रूप से एक बिंदु के साथ शुरुआत सूची फ़ाइलें नहीं (देखें करता है info ls) - यह सॉफ्टवेयर के इस विशेष टुकड़ा के डिजाइन है।

1
@ illumin hidden: तो आप वास्तव में "छिपे" को कैसे परिभाषित करेंगे यदि "डिफ़ॉल्ट रूप से नहीं दिखाया गया है"? ध्यान दें कि यह केवल एक संपत्ति नहीं है ls; ग्लब्स के शेल विस्तार में भी उन फ़ाइलों को शामिल नहीं किया जाएगा जब तक कि प्रमुख डॉट को स्पष्ट रूप से पैटर्न में शामिल नहीं किया जाता है, और आमतौर पर फ़ाइल प्रबंधक उन्हें नहीं दिखाएंगे जब तक कि आप "छिपी हुई फ़ाइलें दिखाएँ" विकल्प का चयन नहीं करते हैं (हाँ, विकल्प उस शब्द का उपयोग नहीं करता है)।
celtschk

जवाबों:


15

आपने "छिपी हुई फ़ाइलों" के लिए प्राथमिक तर्क को गलत तरीके से समझा है। यह नहीं

उपयोगकर्ताओं को चीजों के साथ खिलवाड़ करने से रोकने के लिए।

यद्यपि बहुत नए उपयोगकर्ताओं के लिए यह परिणाम हो सकता है जब तक कि वे यह नहीं सीखते हैं कि "डॉट फ़ाइल" क्या है ( डॉट फ़ाइल और डॉट डायरेक्टरी शायद "छिपे हुए" की तुलना में अधिक उपयुक्त और विशिष्ट शब्द हैं)। सब कुछ अपने आप में चीजों के साथ खिलवाड़ करने से नहीं रोकता है - यही अनुमति है। यह शायद नए उपयोगकर्ताओं को यह इंगित करने में मदद करता है कि यह एक ऐसी चीज है जिसके साथ उन्हें तब तक खिलवाड़ नहीं करना चाहिए जब तक कि वे यह न समझ लें कि यह किस लिए है।

आप इस प्रकार एक फ़ाइल प्रत्यय के रूप में डॉट उपसर्ग के बारे में सोच सकते हैं - ध्यान दें कि उनके पास आमतौर पर उनमें से एक नहीं है, हालांकि वे कर सकते हैं। यह इंगित करता है कि यह फ़ाइल सामान्य ब्राउज़िंग के लिए रूचि की नहीं है, यही वजह है कि lsफ़ाइल ब्राउज़र आमतौर पर इसे प्रदर्शित नहीं करेंगे। हालाँकि, चूंकि यह प्रत्यय के बजाय एक उपसर्ग है, इसलिए जोड़ा गया बोनस है, जब आप उन्हें (सभी को ls -a) एक साथ सूचीबद्ध करने के लिए लेक्सोग्राफिक क्रम में प्रदर्शित करते हैं।

इस तरह की फ़ाइल का सामान्य उद्देश्य किसी एप्लिकेशन (जैसे कॉन्फ़िगरेशन) द्वारा उपयोग के लिए है। आपको उन्हें सीधे उपयोग करने की आवश्यकता नहीं है या यहां तक ​​कि उनके बारे में पता होना चाहिए।

इसलिए, यह "छिपाना" उपयोगकर्ता से फ़ाइल को छिपाने के लिए बहुत अधिक नहीं है, क्योंकि यह अव्यवस्था को कम करने और कुछ संगठन को वैचारिक रूप से प्रदान करने के लिए है।


आपके उत्तर के लिए धन्यवाद। क्या इसका मतलब यह है कि ये फाइलें कम महत्व की हैं और इसलिए अव्यवस्था को कम करने के लिए छिपी हुई हैं?
प्रश्न अतिप्रवाह

1
मुझे लगता है कि यह आपके दृष्टिकोण पर निर्भर है। यह फाइल के महत्व (संभावना) के बारे में कुछ कहता है। वे प्रति उपयोगकर्ता कॉन्फ़िगरेशन के लिए घर निर्देशिकाओं में उपयोग किए जाते हैं , लेकिन वे निर्देशिकाओं में भी आमतौर पर प्रति निर्देशिका कॉन्फ़िगरेशन को इंगित करने के लिए उपयोग किए जाते हैं। दो उदाहरण: संस्करण नियंत्रण प्रणाली जैसे कि git उनका उपयोग करेगा; जब gitकिसी दिए गए निर्देशिका को स्कैन करता है, अगर कोई .gitignoreफ़ाइल मौजूद है, तो वह इसे पढ़ेगा; और जब आप शुरू gdb, यह एक पढ़ा जाएगा $PWD/.gdbinitफ़ाइल यदि वर्तमान ( और एक ~/.gdbinit, एक आम तरीका)।
गोल्डीलॉक्स

4

/etc/skelनई उपयोगकर्ता की होम निर्देशिकाओं में कॉपी की जाने वाली फाइलें शामिल हैं, इसलिए नाम निश्चित रूप से उपयोगकर्ता के होम निर्देशिका में हैं। यह बताते हैं /etc/skel/.bash_profile। निर्देशिका /rootभी एक घर निर्देशिका है, अर्थात् उपयोगकर्ता की घर निर्देशिका root। यह बताते हैं /root/.sshऔर /root/.config

/etc/.pwd.lockएक लॉक फ़ाइल लगती है। आप सामान्य रूप से लॉक फ़ाइलों में रुचि नहीं रखते हैं, इसलिए इसे छुपाने के लिए समझ में आता है।

अन्य फ़ाइलों के लिए, मुझे नहीं पता कि वे किस लिए हैं, लेकिन मुझे यकीन है कि एक अच्छी व्याख्या भी है कि वे क्यों छिपे हुए हैं।

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


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

3

यह एक अत्यधिक ओजस्वी उत्तर हो सकता है, लेकिन मुझे लगता है कि मुख्य कारण डॉट फाइल्स और डॉट डाइरेक्टरीज़ को ऐसे चिन्हित किया जाता है जो उन्हें छिपाने या अस्पष्ट करने के लिए नहीं है - मुझे लगता है कि यह केवल उपयोगकर्ता को यह बताना है कि उन फ़ाइलों और निर्देशिकाओं में प्रोग्राम और उपयोगकर्ता हैं सेटिंग्स जो उनके द्वारा या स्वयं कार्यक्रमों द्वारा बदली जा सकती हैं।

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

उदा> अंदर $HOME/.vimrcआप के लिए विन्यास सेटिंग मिल जाएगा vim

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