কোনও ডিরেক্টরিতে ছোট ফাইল | বড় হাতের অক্ষরে সমস্ত ফাইলের নাম পরিবর্তন করার কোনও উপায় আছে কি ?
আমি অননিলার কমান্ড সন্ধান করছি।
আমি টোটালকম্ডারের পছন্দ করতাম alt+f7
, এখন টার্মিনালে আমার সেই কার্যকারিতাটি দরকার
কোনও ডিরেক্টরিতে ছোট ফাইল | বড় হাতের অক্ষরে সমস্ত ফাইলের নাম পরিবর্তন করার কোনও উপায় আছে কি ?
আমি অননিলার কমান্ড সন্ধান করছি।
আমি টোটালকম্ডারের পছন্দ করতাম alt+f7
, এখন টার্মিনালে আমার সেই কার্যকারিতাটি দরকার
উত্তর:
a_file
বর্তমান ডিরেক্টরিতে প্রতিটি ফাইলের a_file
জন্য ছোট আকারে পুনর্নবীকরণ করুন ।
for a_file in *;do mv -v "$a_file" `echo "$a_file" | tr [:upper:] [:lower:]` ;done;
বড় হাতের ক্ষেত্রে আর্গুমেন্টগুলিকে বিপরীত করুন [:lower:] [:upper:]
tr
কমান্ড রেফারেন্স লিঙ্ক
হালনাগাদ
এমনকি আরও নিয়ন্ত্রণ *
সঙ্গে প্রতিস্থাপন করা যেতে পারে ls
।
উদাহরণস্বরূপ, শুধুমাত্র * .jpg ফাইলগুলিকে ফিল্টার করার জন্য 1.txt, 2.txt, 3.txt, 1.jpg, 2.jpg এবং 3.jpg সমন্বিত ডিরেক্টরিতে ls
ব্যবহৃত হতে পারে:
for a_file in $(ls *.jpg);do mv -v $a_file `echo $a_file | tr [:upper:] [:lower:]` ;done;
উপরের কোডটি a_file
.jpg এক্সটেনশন সহ সমস্ত ফাইলকে পরিবর্তনশীল হিসাবে বরাদ্দ করবে ।
প্রস্তাবিত এসডিএস অনুসারে কমান্ডের -v
জন্য যুক্ত বিকল্প আপডেট করুন ।mv
এখানে আরও একটি মার্জিত এবং সাধারণ ইউটিলিটি রয়েছে prename
।
ল্যারি ওয়াল দ্বারা রচিত, এটি এলো perl
এটি সম্ভবত আপনার সিস্টেমে ইতিমধ্যে উপলভ্য হিসাবে উপস্থিত রয়েছে /usr/bin/prename
(যদি আপনার কাছে সেটআপ বিকল্প থাকে তবে /usr/bin/rename
/ ইত্যাদি / বিকল্পের মাধ্যমে সিমলিংক হিসাবে উপলব্ধ prename
)
এটি ব্যবহার করে আপনি কোনও পার্ল এক্সপ্রেশন প্রদানের মাধ্যমে এক কমান্ডে একাধিক ফাইলের নাম পরিবর্তন করতে পারেন (সহ প্রতিস্থাপন s///
বা চর ট্রান্সপ্লিটেশন অন্তর্ভুক্ত তবে সীমাবদ্ধ নয় tr///
):
উদাহরণ:
# Lowercase all *.JPG filenames:
prename tr/A-Z/a-z/ *.JPG
# Change any 'No' in a filename to a 'Yes':
prename s/No/Yes/g *No*
# increment first sequence of digits in a filename by 3:
prename 's/([0-9]+)/$1+3/e' *[0-9]*
# If a file contains 'aaa', append '.bak' to its name
prename 'if (/aaa/) {$_ .= ".bak"}' *
ইত্যাদি।
পূর্ব নাম সম্পর্কে আর একটি দুর্দান্ত জিনিস হ'ল কোনও ফাইলের কোনও বিদ্যমান ফাইলের নাম পরিবর্তন করার ক্ষেত্রে এটি আপনাকে রক্ষা করে।
man prename
বিস্তারিত জানার জন্য.
find
find . -name * -type f -exec rename 'y/A-Z/a-z/' '{}' \;
find
-name
আপনার প্যাটার্ন পরে ।-maxdepth 0
: কেবল বর্তমান ডিরেক্টরিrename
-n, -nono
: কোনও পদক্ষেপ নেই: নতুন নামকরণের জন্য ফাইলগুলির নাম মুদ্রণ করুন, তবে নাম পরিবর্তন করবেন না।y/source/dest/
: প্যাটার্ন স্পেসে অক্ষরগুলি লিখিতভাবে লিখিত করুন যা ভাগ্যের সাথে সংশ্লিষ্ট চরিত্রের উত্সে উপস্থিত হয়।
mv
যাতে আপনি দেখতে পাচ্ছেন যে কী হচ্ছে; আপনি সম্ভবত "-f" পাস করতে চান না কারণ এটি বিদ্যমান ফাইলগুলিকে