2009-12-20 13 views
20

कॉपी करें मेरे पास एक वर्डप्रेस अपलोड फ़ोल्डर है जो महीनों के लिए उपफोल्डर्स का उपयोग करके संरचित है।नेस्टेड फ़ोल्डर्स सामग्री को एक फ़ोल्डर में रिकर्सिवली (टर्मिनल)

wolfr2:uploads wolfr$ tree . 
. 
|-- 2007 
| |-- 08 
| | |-- beautifulkatamari.jpg 
| | |-- beautifulkatamari.thumbnail.jpg 
| | |-- beetle.jpg 
| | |-- beetle.thumbnail.jpg 

मैं सभी छवियों को किसी अन्य फ़ोल्डर में दोबारा कॉपी करने के लिए टर्मिनल का उपयोग कैसे करूं? मैं वाइल्डकार्ड फ़ोल्डरों को नहीं देख सकता जैसे आप वाइल्डकार्ड फ़ाइल नाम कर सकते हैं। (उदा। * .jpg या *) (मैं मैक ओएसएक्स पर हूं)

cp -R ./*.jpg . 

?

उत्तर

31

यह सभी * .jpg फ़ाइलों को वर्तमान फ़ोल्डर से नए फ़ोल्डर में कॉपी करेगा और निर्देशिका संरचना को संरक्षित करेगा।

tar cvfp `find . -name "*.jpg"` | (cd <newfolder>; tar xfp -) 

निर्देशिका संरचना के संरक्षण के बिना कॉपी करने के लिए:

cp `find . -name "*.jpg"` <newfolder> 
+0

मुझे ओपी में कार्लिफाइड होना चाहिए था कि मैं संरचना से छुटकारा पाना चाहता हूं और बस सभी छवियों को एक फ्लैट फ़ोल्डर में चाहता हूं। – Wolfr

+0

ठीक है, तो सीपी 'ढूंढें। -नाम "* .jpg" '

+0

डर्न, खोज के चारों ओर मेरे बैकक्वॉट छोड़ दिए गए थे। –

28

मेरे सिर के ऊपर बंद:

find . -type f -name \*.jpg -exec cp \{\} $TARGETFOLDER \; 

यदि वह काम नहीं करता है, टिप्पणी और मैं फिर से कोशिश करता हूँ, लेकिन निश्चित रूप से find जाने का रास्ता है।

+2

यह सही जवाब है, क्योंकि यह फ़ाइलें/फ़ोल्डर है कि उनके नामों में रिक्तियां है के साथ काम करता है। – Sinatra

संबंधित मुद्दे