बैश का उपयोग करना
तो मान लें कि मेरे पास एक मूल निर्देशिका में यादृच्छिक रूप से रखी गई फ़ाइलों का एक गुच्छा है ~/src
, मैं एक निश्चित प्रत्यय से मेल खाते सभी फाइलों को हथियाना चाहता हूं और उन्हें ~/dist
निर्देशिका में स्थानांतरित (या कॉपी) करना चाहता हूं ।
आइए इस उद्देश्य के लिए मान लें कि सभी फ़ाइलनामों में यह नामकरण सम्मेलन है:
<filename_prefix>.<filename_suffix>
मुझे पता चला कि यह एक विशेष filename_suffix
फ़ोल्डर के साथ सभी फ़ाइलों को प्राप्त करने और उन्हें एक परेशान फ़ोल्डर में डालने का एक त्वरित तरीका था :
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
अब एक कदम आगे ... मैं इस मामले में खोज के आउटपुट का उपयोग कैसे कर सकता हूं filename
, और filename_prefix
उसी नाम की एक निर्देशिका उत्पन्न करने के लिए उपयोग कर सकता हूं ~/dist
और फिर सभी फाइलों को उस उपसर्ग के साथ उपयुक्त निर्देशिका में स्थानांतरित (या कॉपी) कर सकता हूं ?
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
अनिवार्य रूप से, मैं इस तरह की संरचना बनाने के लिए उपरोक्त कमांड (या शायद किसी अन्य कमांड का उपयोग कैसे) को बदल सकता हूं
(उत्पादन)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
इस तरह एक निर्देशिका पेड़ से?
(इनपुट)
~/src/xrt/people.xrt
~/src/xrt/games.xrt
~/src/conf/games.ini
~/src/pack/monkeys.xrt
~/src/e344/games.moo
~/src/e344/monkeys.moo
~/src/en-us/monkeys.ini