সমস্ত ফাইলকে একটি .jpg এক্সটেনশন দিন


8

আমার একটি ডিরেক্টরি আছে এবং কয়েকটি ফাইলের এক্সটেনশান ছোট হাতের পরিবর্তে বড় হাতের (.JPG) এ রয়েছে।

আমি নিশ্চিত করতে চাই যে প্রতিটি ফাইলের .jpg এর এক্সটেনশন হিসাবে রয়েছে। আমি কীভাবে শেল প্রম্পট থেকে এটি করব?


এটি লজ্জার বিষয় যে লিনাক্সের অ্যাপলস্ক্রিপ্ট নেই।
গ্যাজেটমো

2
এটি এতই দুর্দান্ত যে লিনাক্সের অ্যাপলস্ক্রিপ্ট নেই।
গণিত

উত্তর:


15

শেল প্যারামিটার সম্প্রসারণ ব্যবহার :

for f in *.JPG; do
    mv "${f}" "${f%%.JPG}.jpg"
done

"অক্ষর, স্পেস ধারণকারী ফাইলের নামের যত্ন নিতে ফটোগ্রাফ প্রায়ই হিসাবে হবে।


5
+1 আপনার এই ফাইলনেলে ফাঁকা স্থান থাকলেও এই সমাধানটি কাজ করে, তবে আপনার অর্থ "f" এর পরিবর্তে "$ f" হবে।
আদম জালকম্যান

শেল প্যারামিটার এক্সপেনশনটি কিছুটা ক্রিপ্টিক, এর পরিবর্তে কেউ বেসনাম ব্যবহার করতে পারে: f in * .JPG এর জন্য; do mv "$ f" "` বেসনাম $ f .JPG`.jpg "; সম্পন্ন
গণিত

@ ম্যাথ: আমি আমার সংস্করণটিকে পছন্দ করি কারণ এটি সাদা বাক্সযুক্ত ফাইলের সাথে কাজ করে এবং এটিতেও কাজ করবে /path/to/*.JPG। অবশ্যই আপনার নিজের উত্তর জমা দেওয়ার জন্য আপনাকে স্বাগত জানানো হবে :)
জনসয়েব

অবশ্যই বেসনামটি নেতৃস্থানীয় ডিরেক্টরিগুলির স্ট্রিপ তৈরি করবে তবে ফাইলের নামের ভিতরে ফাঁকা জায়গা নিয়ে কাজ করবে। (আমি মনে করি এটি কোনও উত্তরের মতো নয়;) সুতরাং আমি এটিকে একটি মন্তব্য হিসাবে পোস্ট করেছি)
গণিত

10

আপনি যদি বাহ্যিক সরঞ্জামগুলি (কেবল বাশ নয়) ব্যবহার করতে পারেন তবে renameকমান্ড পরীক্ষা করুন !

rename .JPG .jpg *

এর renameঅংশ util-linux


পুনঃনামকরণ ... সমস্যাযুক্ত। পুনরায় নামকরণের একটি সংস্করণ রয়েছে perlযা একই জিনিসটি করতে বিভিন্ন যুক্তি গ্রহণ করে।
cha0site

আপনি কি আরও কিছু ব্যাখ্যা করতে পারেন? কোন সংস্করণ বিটিডাব্লু?
গণিত

3

আপনার যদি ফাইলনামে ফাঁকা স্থান থাকে:

for f in *.JPG; do [[ -f "${f}" ]] && mv "${f}" "${f/%JPG/jpg}"; done

2

আমি mmvকমান্ডটি একবার দেখার পরামর্শ দিই । এটি এই ধরণের কাজের জন্য ঠিক উপযুক্ত suited আপনার দৃশ্যে এটি হবে:

#> mmv "*.JPG" "#1.jpg"

Man পৃষ্ঠা উদাহরণ পূর্ণ, তাই এটি এটি ব্যবহার করতে পারেন কোন সময় লাগে।

উপর ডেবিয়ান সিস্টেম এটা দিয়ে ইনস্টল করা যেতে পারে:

#> aptitude install mmv

0

যদি আপনার ফাইলনামে ফাঁকা স্থান না থাকে:

for f in *.JPG; do mv $f `echo $f | sed 's/JPG$/jpg/'`; done

1
নামের ফাঁকা জায়গাগুলির ফাইলগুলির জন্য এই কাজটি করা যথেষ্ট সহজ হবে: কেবলমাত্র উভয় আর্গুমেন্টের দ্বিগুণ উদ্ধৃতি যুক্ত করুন mv
আদম জালকম্যান

আমার কাছে জায়গা নেই। CURRENT ডিরেক্টরিতে এটি ঘটতে আমি কী যুক্ত করব। এই মুহুর্তে আমি ত্রুটি পেয়েছি - এমভি: `* .জেপিজি 'স্ট্যাটাস করতে পারে না: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
মার্ক ফ্লিন্ট

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