विंडोज 7 mklink - हार्ड लिंक की विशेषताएँ (अपेक्षित!) + सामग्री लिंक की गई फ़ाइल को प्रभावित नहीं करती हैं


6

मैंने अपने ड्रॉपबॉक्स डीआईआर में एक फ़ाइल की ओर इशारा करते हुए एक कठिन लिंक बनाया - लिंक एक फ़ोल्डर के अंदर बनाया गया था जहां इस फ़ाइल को उन कार्यक्रमों तक पहुंचने की आवश्यकता होती है जिन्हें मैं इसे संपादित करने के लिए उपयोग करता हूं -

mklink /h path_to_hard_link C:\dropbox\git\repo\existing_file

मैंने हार्ड लिंक के साथ ठीक काम करना शुरू कर दिया। कुछ बिंदु पर मैंने महसूस किया कि परिवर्तन फ़ाइल में रेपो में फ़ाइल का प्रचार नहीं करते हैं - फाइल, संशोधन तिथि, कुछ भी नहीं - सामग्री को EVEN नहीं करें।

मैं क्या गलत कर रहा हूं ?

संपादित करें: क्या कार्यक्रम पर निर्भर होना संभव है? मेरा मतलब है कि मैं इन फ़ाइलों के लिए उपयोग किए जाने वाले संपादक को वास्तव में उन्हें संपादित करता हूं - लेकिन केवल हार्ड लिंक को संपादित करता है । लिंक की गई फ़ाइल को संशोधित नहीं किया गया है। इसके अलावा यह संपादक प्रतीकात्मक लिंक का पालन करने में सक्षम नहीं लगता है

EDIT2: सर्फ़ासब द्वारा लिंक किए गए लेख के अनुसार:

क्योंकि एक हार्ड लिंक एक फ़ाइल के लिए एक निर्देशिका प्रविष्टि है, एक एप्लिकेशन अपनी किसी भी हार्ड लिंक का उपयोग करके किसी फ़ाइल को संशोधित कर सकता है। किसी अन्य हार्ड लिंक का उपयोग करने वाले अनुप्रयोग परिवर्तनों का पता लगा सकते हैं।

मतलब कि मूल फ़ाइल में संशोधन तब होना चाहिए जब एक उपयुक्त संपादक के साथ सीधे खोला गया - न केवल इसकी कड़ी के माध्यम से - सही?

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

अगर मैं अंग्रेजी के इस नीच नमूने को सही ढंग से समझता हूं तो इसका मतलब है कि मेरे पास एक ही फ़ाइल के लिए अलग-अलग आकार दिखाने वाली एक ही फ़ाइल में 69 हार्ड लिंक (1023 तक) हो सकते हैं !

संपादित 3: अच्छी तरह से सर्फ़सब के अनुसार मैं इसे सही ढंग से समझता हूं - फाइलसिस्टम की एक सीमा। वैसे भी - अजीब बात है - यह हमेशा ऐसा नहीं होता है - कभी-कभी विशेषताओं में परिवर्तन तुरंत मूल फ़ाइल में दिखाई देता है - जब परिवर्तन होता है - मेरी असली चिंता अब यह है कि मैं जो कम से कम एक प्रोग्राम का उपयोग कर रहा हूं वह संपादित नहीं होता है फ़ाइल लिंक की गई लेकिन केवल हार्ड लिंक है। मुमकिन ? dir /aहार्ड लिंक के बारे में बहुत कुछ नहीं बताता - उन्हें देखने का कोई तरीका?


जवाबों:


5

मुझे लगता है कि इसका उत्तर (किसी मददगार व्यक्ति से उद्धृत) है:

आपको जिस पर विचार करना है, वह एक फ़ाइल पर एप्लिकेशन / प्रोग्राम के काम करने का तरीका है।

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

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

तो हाँ - हार्डलिंक टूट सकता है और टूट जाएगा - जो उनकी उपयोगिता को सीमित करता है - बुरी तरह से सोचा।

गलत होने पर मुझे सुधारो


यदि वे फ़ाइल की प्रतिलिपि बनाते हैं, तो वे हार्डलिंक को भी कॉपी करते हैं।
सर्फस

3

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

मैं इस सवाल को बहुत देखता हूं। मैं हमेशा लोगों से कहता हूं कि वे टेक्नेट को हिट करें और NTFS पर डॉक्यूमेंटेशन पढ़ें।

http://technet.microsoft.com/en-us/library/cc781134(WS.10).aspx

ध्यान दें कि NTFS डिस्क पर तुरंत LAT नहीं लिखता है। यह आम तौर पर उस फ़ाइल में लिखे बदलावों के लिए एक घंटे या सिर्फ पिगीबैक होने के लिए अंतर का इंतजार करेगा। फ़ाइल आधारित प्रश्नों, तथापि, होगा सही हो।

यह ऑडिटिंग टूल नहीं है। ऐसे उदाहरण होंगे जहां NTFS प्रदर्शन की कीमत पर LAT को अपडेट नहीं करेगा । यदि आप एक ऑडिटिंग टूल की तलाश कर रहे हैं, तो मैं आपको स्थानीय सुरक्षा ऑडिटिंग चालू करने का सुझाव दूंगा। यह LAT के विपरीत, सभी फ़ाइल में प्रवेश करेगा । उदाहरण के लिए, कई एपीआई कॉल हैं जिनका आप उपयोग कर सकते हैं जो LAT को प्रभावित नहीं करेंगे।

नीचे टिप्पणी करने के लिए प्रतिक्रिया संपादित करें।

यह पढ़ रहा होगा - लेकिन एक) मैं वास्तव में LMT और बी के साथ सबसे अधिक चिंतित था) फ़ाइल का आकार और सामग्री भी नहीं बदली - क्या यह प्रोग्राम निर्भर हो सकता है ?? यह निश्चित रूप से नहीं करना चाहिए। मैं यहां यूनिक्स और आई नोड्स की सराहना करना शुरू कर रहा हूं - EDIT: आकार और समय को प्रचारित करने की आवश्यकता नहीं है (इस पर पुष्टि की आवश्यकता है) लेकिन सामग्री चाहिए

लेख विशेष रूप से आपके सटीक मुद्दों को संबोधित करता है। मैं लेख उद्धृत करूँगा। मेरे द्वारा जोर दिया गया था।

फ़ाइल सामग्री को बदलना चाहिए था अन्यथा आपने इसे सही नहीं किया।

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

इसलिए जब फ़ाइल स्वयं बदली गई थी, तब तक संबंधित निर्देशिका प्रविष्टियों को अपडेट नहीं किया जाएगा, जब तक कि उन्हें एक्सेस नहीं किया जा रहा है। इसलिए यदि आपके पास दो संगत हार्डलिंक के माध्यम से एक पाठ फ़ाइल खोली गई है, तो दोनों निर्देशिका प्रविष्टियां बदल जाएंगी। अब अगर आपके पास केवल हार्डलिंक ए के माध्यम से फाइल खुली है, तो हार्डलिंक बी अपडेट नहीं किया जाएगा। फ़ाइल में आपके द्वारा किए गए कुछ भी परिवर्तन होंगे। लेकिन फिर से, हार्डलिंक निर्देशिका प्रविष्टियां हैं, और यदि आप इसका उपयोग नहीं कर रहे हैं तो NTFS निर्देशिका प्रविष्टि को अद्यतन नहीं करता है। यह I / O की बर्बादी होगी।

अब मुझे लगता है कि आप एक्सप्लोरर के माध्यम से यह सब देख रहे हैं। एक्सप्लोरर बहुत सी जानकारी टाइप करता है जैसे कि cmd लाइन पर dir टाइप करना । एक निर्देशिका सूची बस एक लिस्टिंग है। एक निर्देशिका सूची को पढ़ना हालांकि फ़ाइल को एक्सेस नहीं करता है , जो महत्वपूर्ण है। अन्यथा, निर्देशिका लिस्टिंग प्राप्त करने से फ़ाइल के सभी अंतिम एक्सेस समय में बदलाव होगा! तो इस प्रकार आपको पुरानी जानकारी मिल जाएगी अगर कोई हार्डलिंक है। आप एक्सप्लोरर को राइट क्लिक करके फ़ाइल को एक्सेस करने के लिए बाध्य कर सकते हैं और कह सकते हैं, विवरण टैब की जांच करें। या सिर्फ फ़ाइल खोलना।

edit3

पूरी तरह से अंतर नहीं हो रहा है - जब एक foo.txt पर ^ c तब ^ ^ मार रहा है (तो विंडोज़ एक फ़ाइल बनाता है जैसे foo - Copy.txt और इसे वर्तमान निर्देशिका में रखता है) - यह किस अर्थ में नकल है?

यह मुश्किल कारण था, मुझे पता नहीं है कि कैसे एक्सप्लोरर अपने मौजूदा निर्देशिका में एक मौजूदा फ़ाइल की नकल करता है। इसलिए मुझे इसका परीक्षण करना था। ऐसा लगता है कि एक्सप्लोरर स्रोत फ़ाइल लक्ष्य को कॉपी करता है, चाहे स्रोत फ़ाइल हार्डलिंक हो या सिमिलिंक।

एक्सप्लोरर में बहुत अधिक दानेदार नियंत्रण और सहानुभूति और हार्डलिंक का समर्थन नहीं है। अब, यदि आप करते हैं, तो लिंक को स्वयं कॉपी करना संभव है "mklink /h Foo1.txt Foo.txt"। इससे एक नया हार्डलिंक बनता है Foo1.txt। हालाँकि आप इसे एक्सप्लोरर में नहीं कर सकते। मेरा सुझाव है कि आप लिंक शैल एक्सटेंशन प्राप्त करें। यह कस्टम शॉर्टकट एरो आइकनों के साथ लिंक को ओवरले करता है, लक्ष्यों को दर्शाता है, और सीमलिंक और हार्डलिंक के स्पष्ट निर्माण की अनुमति देता है।

Edit4

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

मुझे यह याद नहीं है कि आपके प्रश्न का यह हिस्सा क्या है। मैं उस प्रोग्राम के बारे में उत्सुक हूं जो लिंक की गई फ़ाइल को संपादित नहीं करता है। यह कौन सा कार्यक्रम है?

A dir /aनिर्देशिका प्रविष्टियों को अपडेट नहीं करेगा। यह डिजाइन द्वारा है, क्योंकि यह प्रदर्शन गहन होगा।


1
यह पढ़ रहा होगा - लेकिन एक) मैं वास्तव में LMT और बी के साथ सबसे अधिक चिंतित था) फ़ाइल का आकार और सामग्री भी नहीं बदली - क्या यह कार्यक्रम निर्भर हो सकता है ?? यह निश्चित रूप से नहीं करना चाहिए। मैं यहां यूनिक्स और आई नोड्स की सराहना करना शुरू कर रहा हूं - EDIT: आकार और समय को फिर से प्रचारित नहीं करना चाहिए (इस पर पुष्टि की आवश्यकता है) लेकिन सामग्री चाहिए
Mr_and_Mrs_D

मैं अपना जवाब अपडेट करूंगा।
सर्फ़सब

धन्यवाद - जैसा कि आप देख रहे हैं कि मैंने स्वयं उत्तर का एक ही भाग उद्धृत किया है - अब जहाँ तक मैं देख सकता हूँ फ़ाइल स्वयं नहीं बदली है । उद्धरण के लिए - कभी - कभी (कार्यक्रम के आधार पर) एलएमटी में परिवर्तन तुरंत फ़ाइल (एक्सप्लोरर में विवरण देखें) परिलक्षित होता है। असंगति। मैंने एक +1 लगाया, लेकिन अभी तक कोई टिक नहीं किया - मेरा असली सवाल अब उस फ़ाइल विशेषता से बाहर है (लगभग) यदि प्रोग्राम के दस्तावेजी उदाहरण हैं जो फ़ाइल को उसके हार्ड लिंक के माध्यम से संशोधित करने में विफल रहे हैं। मैं एक ही कार्यक्रम को दोहराता हूं - सांकेतिक लिंक को बिल्कुल भी हल नहीं करता है - संदिग्ध।
Mr_and_Mrs_D

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

पूरी तरह से अंतर नहीं हो रहा है - जब एक foo.txt पर ^ c तब ^ ^ मार रहा है (तो विंडोज़ एक फ़ाइल बनाता है जैसे foo - Copy.txt और इसे वर्तमान निर्देशिका में रखता है) - यह किस अर्थ में नकल है?
Mr_and_Mrs_D
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.