आप निम्न तरीके mcp
से mmv
पैकेज से उपयोग कर सकते हैं :
mcp "*original*" "#1copy#2"
यह वर्तमान निर्देशिका में "मूल" स्ट्रिंग वाली प्रत्येक फ़ाइल की प्रतिलिपि बनाएगा और इस स्ट्रिंग को "प्रतिलिपि" से बदल देगा। आप परीक्षण कर सकते हैं mcp
कि -n
ध्वज को जोड़ने से क्या होगा , हालांकि यह चुपचाप फाइलों को अधिलेखित नहीं करेगा, लेकिन आपसे पूछें। उपयोग करने mmv
से यह फायदा होता है cp
कि आपको इसे हर एक फाइल के लिए नहीं बुलाना पड़ता है - एक हजार फाइलों के साथ जैसे आप कॉपी करते हैं, इससे फर्क पड़ता है।
आप निम्न तरीके से GNUparallel
का उपयोग कर सकते हैं ( --dry-run
परीक्षण के लिए है, इसे कॉपी करने के लिए हटा दें):
parallel --dry-run cp -p "{}" "{=s/original/copy/=}" ::: *
या, यदि वह "तर्क सूची बहुत लंबी" त्रुटि देता है:
printf "%s\0" * | parallel --dry-run -0 cp -p "{}" "{=s/original/copy/=}"
उदाहरण चलाते हैं
$ ls -1
foo_bar_abc_1_01_geh_original.in
foo_bar_abc_1_02_geh_original.in
foo_bar_abc_1_03_geh_original.in
foo_bar_abc_1_04_geh_original.in
$ mcp "*original*" "#1copy#2"
$ ls -1
foo_bar_abc_1_01_geh_copy.in
foo_bar_abc_1_01_geh_original.in
foo_bar_abc_1_02_geh_copy.in
foo_bar_abc_1_02_geh_original.in
foo_bar_abc_1_03_geh_copy.in
foo_bar_abc_1_03_geh_original.in
foo_bar_abc_1_04_geh_copy.in
foo_bar_abc_1_04_geh_original.in
आइए time
इसे करें, धीमी मशीन पर प्रत्येक 100 कीबी की 1000 से अधिक फाइलें चलाएं :
$ time mcp "*original*" "#1copy#2"
real 0m1.114s
user 0m0.000s
sys 0m0.132s