আপনি এখানে যান:
for file in /home/user/temps/*/thumb.png; do new_file=${file/temps/new_folder}; cp "$file" "${new_file/\/thumb/}"; done;
সম্পাদনা:
ক্যানোনিকাল প্রজ্ঞা, যাইহোক, এর জন্য ব্যবহার find
করা একটি খারাপ ধারণা - কেবল শেল প্রসারকে ব্যবহার করা আরও নির্ভরযোগ্য। এছাড়াও, এটি ধরে নেওয়া হয় bash
, তবে আমি অনুভব করি এটি একটি নিরাপদ অনুমান :)
সম্পাদনা 2:
স্পষ্টতার জন্য, আমি এটিকে ভেঙে দেব:
# shell-expansion to loop specified files
for file in /home/user/temps/*/thumb.png; do
# replace 'temps' with 'new_folder' in the path
# '/home/temps/abc/thumb.png' becomes '/home/new_folder/abc/thumb.png'
new_file=${file/temps/new_folder};
# drop '/thumb' from the path
# '/home/new_folder/abc/thumb.png' becomes '/home/new_folder/abc.png'
cp "$file" "${new_file/\/thumb/}";
done;
${var/Pattern/Replacement}
নির্মাণ সম্পর্কিত বিবরণ এখানে পাওয়া যাবে ।
cp
লাইনে থাকা উদ্ধৃতিগুলি ফাইলের নামগুলিতে স্পেস এবং নিউলাইন ইত্যাদি পরিচালনা করতে গুরুত্বপূর্ণ।