यह करने की आवश्यकता नहीं है rsync, लेकिन यह अच्छा होगा कि ऐसा करने के लिए एक स्क्रिप्ट लिखना न पड़े, और rsyncमैं जो चाहता हूं उसके बहुत करीब हूं।
rsync -a(या -l) सीमलिंक को संरक्षित कर सकते हैं, और -Lसिम्फ़लिंक को निष्क्रिय कर सकते हैं और इसे कॉपी कर सकते हैं जैसे कि यह सामान्य फ़ाइल / डायर है। हालाँकि, क्या सिमलिंक रखना संभव है, और लिंक को इंगित करने वाली फ़ाइलों / निर्देशिकाओं की प्रतिलिपि भी बनाएं?
यहाँ एक उदाहरण है। कहें कि हमारे पास यह फ़ोल्डर पदानुक्रम है:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
और जब मैं rsync -aR dirA dest(या कुछ और) करता हूं, तो मैं चाहता हूं कि ये बिल्कुल इसमें दिखाई दें dest:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
क्या यह संभव है rsync? धन्यवाद।
आइए मान लें कि पूर्ण पथ पर मौजूद सहानुभूति या स्रोत निर्देशिका के बाहर की ओर इशारा किया जा सकता है।
a -> b, b -> c/foo, c -> d/e: नकल के लिए एक अनुरोध aभी कॉपी चाहिए b, c, c/foo, d, d/eऔर d/e/foo)।
dirA/linkकोई सिमलिंक है../dirB/file, तो इसे और इसे कॉपीdirB/fileकरने के रूप में संभाला जाना चाहिए । यदि कोई लिंक हो तो क्या होगा ? क्या होता है, सामान्य रूप से, अगर एक निर्देशिका की ओर इशारा करता है जो कि निर्देशिका पेड़ में ऊपर है?dest/dirB/filedirA/linkdest/dirA/linkdirA/link../../another_filedirA/link