मैं सभी फाइलों और फ़ोल्डरों को एक डायरेक्टरी से दूसरी डायरेक्टरी में कॉपी करने की कोशिश कर रहा हूं, लेकिन कुछ फाइलों को छोड़ दें। विशेष रूप से, मैं तोड़फोड़ फ़ाइलों और फ़ोल्डरों को बाहर करना चाहता हूं। हालाँकि, मैं एक सामान्य अभी तक संक्षिप्त समाधान चाहूँगा।
मुझे लगता है कि मुझे निकट भविष्य में कई प्रकार की फ़ाइलों को बाहर करने की आवश्यकता होगी। उदाहरण के लिए, मैं .svn, * .bak, और * .prj को बाहर करना चाह सकता हूं।
यहाँ मैंने इसके लिए एक साथ रखा है, लेकिन यह मेरे लिए काम नहीं कर रहा है। पहला भाग, काम ढूंढता है , लेकिन मैं xargs और cp के साथ कुछ गलत कर रहा हूं । मैं के साथ और बिना cp की कोशिश की -R
। इसके अलावा, मैं ओएस एक्स का उपयोग कर रहा हूं और इसमें लिनक्स सिस्टम की तुलना में xargs का कम चित्रित संस्करण है ।
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
झंडा है, मुझे पूरा यकीन है। उसे निकालें और आपको ठीक होना चाहिए (हालाँकि आप -mindepth 1
toplevel निर्देशिका फ़ोल्डर को अनदेखा करना चाहते हैं, जिसे आप कॉपी नहीं करना चाहते हैं, मुझे लगता है)
find
आदेश-prune
.svn आइटम को बाहर करने के लिए ठीक से उपयोग करता है, तो आप उस-R
ध्वज को पास करते हैंcp
जो उस आदेश को पुनरावर्ती बताता है । जब यह ऐसा होता है, तो आपके पासfind
कमांड में जो भी ग्रैन्युलैरिटी होती है, आप खो देते हैं । मैं इसके साथ एक मिनट के लिए छेड़छाड़ करने जा रहा हूं, लेकिन मुझे लगता है कि इसका जवाब कमांड में उपयोग नहीं करना है ।-R
cp