কিভাবে অন্য কোনও উত্স থেকে অনুলিপি করা হলে সদৃশগুলির জন্য চেক করুন এবং ফাইলটির নাম পরিবর্তন করুন


0

এটি bash একটি স্ক্রিপ্ট, এটি একটি ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে ফাইল অনুলিপি কিন্তু একটি উপ-ডিরেক্টরি মধ্যে সদৃশ হতে পারে। তাই অনুলিপি করার সময়, অন্য কোনও ফাইলটির একই নাম থাকা উচিত কিনা তা স্বীকার করা উচিত এবং যদি তাই হয় - যে ফাইলটি অনুলিপি করা হচ্ছে তার নামটি পরিবর্তন করুন। আমি এই চেষ্টা

for i in $1; do
    find $i -type f -name img*.jpg -exec cp {} $2 \;
    for j in $2; do
        find $j -type f -name $i | while read filename; do if test "$i"="$j"; then mv $i new_filename; fi done
    done
done 

কিন্তু আমি একটি ত্রুটি বার্তা পেয়েছি যে একটি ফাইলের নাম স্ল্যাশ না থাকা উচিত যা কিছুটা অদ্ভুত ... আমি একটি সম্পূর্ণ শিক্ষানবিশ, যদি আপনি কোনও কোড রাখেন তবে মন্তব্য করুন। ধন্যবাদ।


আপনি একটি নমুনা ডিরেক্টরি গঠন দিতে পারেন?
19

উত্তর:


0

আপনার $1একটি ডিরেক্টরি তালিকা হওয়া উচিত, এটি সন্ধান করার পরে প্রথম পরামিতি। ঠিক আছে?
আপনার প্রথম অনুসন্ধানে আপনাকে তারকাচিহ্ন উদ্ধৃত করতে হবে: -name 'img*.jpg'
তারপরে আপনি ডিরেক্টরির মধ্যে অনুলিপি করুন $2। অতএব, $2আপনার দ্বিতীয় জন্য একটি ডিরেক্টরি, এবং শুধুমাত্র এক।
আপনার উদ্দেশ্য তাকান হয় তাহলে প্রতি দায়ের মধ্যে $2, ব্যবহারের for j in $2/*এবং তারপর, find $2 -type f -name $i | while...
BTW, যদি সুযোগ যে নাম স্পেস থাকতে পারে হয়, পরামিতি প্রায় উদ্ধৃতি চিহ্ন ব্যবহার করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.