Rsync में शामिल फ़ाइलों को कैसे शामिल किया जाए


16

मैं एक ऐसी rsync स्थापित करने का प्रयास कर रहा हूं, जिसमें सभी .*फ़ाइलों को छोड़कर, .htaccessलेकिन दुर्भाग्य से, यह काम नहीं करता है:

rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir

क्या किसी भी तरह से सामान्य नियमों को बाहर करना संभव है?

जवाबों:


24

पहला मिलान नियम लागू होता है, इसलिए बाहर करने .htaccessसे पहले शामिल करें .*

rsync -avP --include=".htaccess" --exclude=".*" . user@server:/dir

यह .htaccessहर स्तर पर कॉपी करता है। मैं नहीं जानता कि आप क्या चाहते हैं ./.htaccess; यदि आप केवल प्रतिलिपि के मूल में एक फ़ाइल से मेल खाना चाहते हैं, तो पैटर्न को ए से शुरू करें /। यदि आप केवल रूट चाहते हैं .htaccess, तो आप बस उपयोग नहीं कर सकते --include='/.htaccess' --exclude='.*', क्योंकि गैर-रूट किए गए नियम वास्तव में यहां पूर्वता लेता है, आपको कुछ जटिल करने की आवश्यकता है:

rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir

आगे पढ़ने: rsync फिल्टर के लिए बुनियादी सिद्धांत


@ fred.bear: यह एक वास्तविक टाइपो था, और एक बुरा। इसे जगह देने के लिए धन्यवाद!
गिलेस एसओ- बुराई को रोकना '

धन्यवाद, मैंने पहले डालने की कोशिश की थी --include, लेकिन "./.htaccess" के सामने "./" था जो इसे मार रहा था।
रिच

1
@ यह ध्यान रखें कि यदि कोई .htaccessफ़ाइल में छिपी हुई निर्देशिका है , तो आपको --include='.*/'(मुझे लगता है) फ़ाइनल से पहले --exclude, यहाँ
तोबियस किंज़्लर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.