कैसे एक गंतव्य फ़ोल्डर में फ़ोल्डर्स को छोड़कर सभी फ़ाइलों की प्रतिलिपि बनाएँ?


2

मेरे पास कई फ़ोल्डर हैं जैसे /music/1/a.mp3और/music/2/b.mp3

फ़ाइल के सभी नाम अलग होने की गारंटी है।

वहाँ एक रास्ता है, शायद टर्मिनल का उपयोग कर, इन फ़ाइलों को /musicTemp/फ़ोल्डर्स को बाहर कॉपी करने के लिए ?

दूसरे शब्दों में, उपरोक्त दो उदाहरणों का परिणाम होना चाहिए:

/music/1/a.mp3
/music/2/b.mp3

में:

/musicTemp/a.mp3
/musicTemp/b.mp3

2
क्या खोजक पुनरावर्ती फ़ाइलों की खोज करने का विकल्प प्रदान करता है? यदि हां, तो खोज करें, सभी का चयन करें, और अपने गंतव्य पर खींचें। मुझे पता है कि अन्य ओएस पर एक अच्छा विकल्प है।
बेन वोइगट

1
यह इतना स्पष्ट है कि मैं अभी सामना कर रहा हूं। सभी फाइलें हैं .m4a और फाइंडर मुझे सिर्फ / संगीत / तक सीमित करने देता है। धन्यवाद!!!
21

1
बस एक विकल्प जोड़ने के लिए:find /music -name "*.mp3" -type file -exec mv {} /destination_dir \;
हेन्नेस

2
@ हेन्स: cpनहीं mv। अन्यथा वह काम करना चाहिए।
बेन वोइगट

जवाबों:


4

findआदेश विशिष्ट फ़ाइल प्रकार इस मामले में, निर्धारित पैटर्न (-name) की सभी फाइलों को मिलेगा: *.mp3-execजब तक कोई तर्क ;सामने नहीं आता है, तब तक कमांड के तर्कों को कमांड के रूप में लिया जा सकता है , (शेल द्वारा विस्तार को रोकने के लिए शाब्दिक भागने के साथ)। इस स्थिति में, जिस कमांड को हम निष्पादित करना चाहते हैं, वह फाइल कॉपी है ( cp) पैटर्न से मेल खाने वाली फाइलों पर ( {}) और उन फाइलों को कॉपी करने के लिए /destination_dir। इस आदेश को चाल करना चाहिए:

find /music -name "*.mp3" -type file -exec cp {} /destination_dir \;

3

यदि आपने बैश 4 स्थापित किया है , तो आप shopt -s globstarइसे .bash_profile में जोड़ सकते हैं और इसे चला सकते हैं :

cp /music/**/*.mp3 /musicTemp/

यह निश्चित नहीं है कि shopt..बिना मॉड के बिना इस काम के लिए क्या आवश्यक है, mvकिसी भी तरह से .. धन्यवाद किसी भी तरह **मेरे लिए नया है :)
geotheory
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.