একটি দুর্দান্ত সমাধান হ'ল ব্যাকআপগুলির একটি সেট (যেমন উপসর্গযুক্ত backup-
) করা, নতুন ফাইলগুলির সেট তৈরির মূল ফাইলগুলি ঘোরানো (যেমন উপসর্গযুক্ত ) যেমন rotated-
আপনাকে একটি সেট দেয়
img-1.png
backup-img-1.png
rotated-img-1.png
img-2.png
- ... ইত্যাদি
mv
/ cp
টুলস [ব্যাশ globbing] শুধুমাত্র উপসর্গ যোগ করতে পারেন, এটা নোংরা তাদের দূরে নিতে (এটা প্যারামিটার সম্প্রসারণ ব্যবহার করতে চাই, ewww ...)
rename
টুল আপনি ব্যবহার করার অনুমতি দেয় s/before/after/
(থেকে প্রতিকল্পন সিনট্যাক্স sed
swap 'র যে রক্ষাকবচ প্রিফিক্স টুল) এবং মূল ফাইল মুছে, তাই ছবি একটি প্রদত্ত সেট আপনার সামগ্রিক প্রক্রিয়া img-
{1..n}.png
হবে:
for imgf in img-*.png; do mv "$imgf" "backup-$imgf"; done
for imgf in backup-img-*.png; do convert "$imgf" -rotate 90 "rotated-$imgf"; done
বিঃদ্রঃ:
- আপনি তার
cp
পরিবর্তে ব্যবহার করতে পারেন mv
, তবে তারপরে মূল কপিরাইটের দুটি কপি রয়েছে (খারাপ দিকটি আপনি উপসর্গের সাথে মিলিত হন, "rotated-backup-
...")
- ঘূর্ণনটি ঘড়ির কাঁটার দিকে (
-rotate 270
আপনাকে 90 ° অ্যান্টি-ক্লকওয়াইজ দেয়)
- অগ্রগতি ট্র্যাক করতে, কলগুলির
echo "Rotating ${imgf#backup-} ... ";
পরে যুক্ত করুন convert
(আগে done
)
আরও কমপ্যাক্ট ফর্মের জন্য (যেমন সংখ্যাযুক্ত ফাইলগুলির একটি সেট) এর echo "$(echo ${imgf#backup-img-} | cut -d\. -f 1)...";
পরিবর্তে কিছু প্যারামিটার বিস্তৃতি ব্যবহার করুন
(আপনি একই ব্যাশ পরম প্রসারণে উপসর্গ এবং প্রত্যয় মুছে ফেলতে পারবেন না তাই ব্যবহার করুন cut
)
তারপরে যাচাইকরণের পরে আপনি গোলযোগ করেননি, ছবিগুলি মূলটিতে ফিরে গিয়ে মুছুন
rename 's/^rotated-//;' rotated-*
rm backup-img-*