मुसीबत
जब फ़ाइलों की प्रतिलिपि बनाई जाती है cp -H
या cp -L
, मुझे वही परिणाम मिलते हैं:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
यहाँ यह उत्तर दोनों विकल्पों को समान UNLESS के साथ संयोजन के रूप में उपयोग करने का वर्णन करता है -R
। मेरे लिए नहीं। सॉफ्ट- जैसे कि हार्डलिंक फाइलें उन फाइलों की नामांकित प्रतियों में बदल जाती हैं जो वे स्रोत पर इंगित करती हैं।
प्रश्न :
के समुचित उपयोग क्या है cp -H
और cp -L
? क्या यह अपेक्षित व्यवहार है?
हल करने के लिए मेरे प्रयास :
man cp
मुझे काफी दोनों विकल्पों के लिए एक ही बताती है, लेकिन info cp
के शब्दों में यह और भी अधिक मेरे लिए भ्रमित करता है। हो सकता है कि कोई मुझे इसे तोड़ने में मदद कर सकता है:
-H
यदि एक कमांड लाइन तर्क एक प्रतीकात्मक लिंक को निर्दिष्ट करता है, तो उस फ़ाइल को कॉपी करें जो केवल प्रतीकात्मक लिंक के बजाय इंगित करता है। हालांकि, किसी भी प्रतीकात्मक लिंक को कॉपी करना (उसकी प्रकृति को संरक्षित करना) जो पुनरावर्ती ट्रैवर्सल के माध्यम से सामना करना पड़ता है।
यह मेरे लिए एक विरोधाभास की तरह लगता है: मुझे लगता है कि » एक प्रतीकात्मक लिंक की प्रकृति « है कि यह कहीं इंगित करता है ...
-L, --dereference
उनसे कॉपी करते समय प्रतीकात्मक लिंक का पालन करें। इस विकल्प के साथ,cp
एक प्रतीकात्मक लिंक नहीं बना सकते। उदाहरण के लिए, स्रोत ट्री में एक सिम्लिंक (नियमित फ़ाइल के लिए) को गंतव्य ट्री में एक नियमित फ़ाइल में कॉपी किया जाएगा।
मुझे पता है कि एक सिमलिंक एक नियमित फ़ाइल नहीं है, लेकिन ... मैं मानता हूँ कि मैं इस स्पष्टीकरण के साथ यहाँ आया हूँ।
info cp
और यह पता लगाने की पूरी कोशिश की कि इस विकल्प पर शब्दों का विकल्प वास्तव में क्या है & ndash; और यह पोस्ट किस बारे में है। पोस्टिंग में वास्तविक info cp
info cp
, खोजो-R
। यह कहता है,Copy directories recursively.
लेकिन आप गैर-निर्देशिकाओं के साथ परीक्षण कर रहे हैं। अंतर यह है कि निर्देशिकाओं के अंदर क्या है जो आप कॉपी कर रहे हैं, कमांड लाइन तर्क नहीं।