RSync - एक विशेष उपनिर्देशिका और उसके बच्चों को छोड़कर जहां उपनिर्देशिका विभिन्न स्तरों पर मौजूद है


36

अच्छा दिन,

मैं एक दूरस्थ फ़ोल्डर ट्री को पुन: सिंक करने के लिए rsync का उपयोग कर रहा हूं जो निम्नलिखित की तरह दिखता है:

/folderA/a1/cache
/folderA/a1/cache/A1
/folderA/a1/cache/A2
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder/cache
/folderB/cache/
/folderB/b1/somefolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache/B1
/folderB/b1/somefolder/yetanotherfolder/cache/B2

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

/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/

कोई सुझाव?


जवाबों:


53

आप --excludeझंडा चाहते हैं । उदाहरण के लिए, एक स्थानीय rsync:

rsync -a --exclude cache/ src_folder/ target_folder/

यह वास्तव में इतना सरल है - कि बहिष्कृत नियम आपके पेड़ में कहीं भी "कैश" नामक एक निर्देशिका से मेल खाएगा।

अधिक जानकारी के लिए, rsync मैन पेज पर "--exclude" और "फ़िल्टर नियम" अनुभाग देखें:

http://www.samba.org/ftp/rsync/rsync.html


1
रवींद्र !!। धन्यवाद यह सरल उत्तर है कि मुझे सबसे अच्छा :-)
— TheEdge

1
पेड़ में कहीं भी क्या नहीं है? जैसे, केवल बहिष्कृत a/cache। UPD इस उत्तर को
— x-yuri

2
इसके अलावा --exclude /cache/(अग्रणी के साथ /) केवल a/cacheनिर्देशिका को बाहर करेगा , किसी भी निर्देशिका का नाम नहीं cache।
— अमीर अली अकबरी

a/ b/उपरोक्त कमांड लाइन में क्यों , इसका क्या मतलब है?
— दानियाल २४'१५ को

1
@Danijel: a/वह निर्देशिका है जिसे हम समन्‍वयित कर रहे हैं (या कॉपी कर रहे हैं); b/वह निर्देशिका है जिसमें हम सिंक कर रहे हैं।
— जंदर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.