কোনও ডিরেক্টরিতে ছোট ফাইল | বড় হাতের অক্ষরে সমস্ত ফাইলের নাম পরিবর্তন করার কোনও উপায় আছে কি ?
আমি অননিলার কমান্ড সন্ধান করছি।
আমি টোটালকম্ডারের পছন্দ করতাম 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 বিস্তারিত জানার জন্য.
findfind . -name * -type f -exec rename 'y/A-Z/a-z/' '{}' \;
find-nameআপনার প্যাটার্ন পরে ।-maxdepth 0: কেবল বর্তমান ডিরেক্টরিrename-n, -nono: কোনও পদক্ষেপ নেই: নতুন নামকরণের জন্য ফাইলগুলির নাম মুদ্রণ করুন, তবে নাম পরিবর্তন করবেন না।y/source/dest/: প্যাটার্ন স্পেসে অক্ষরগুলি লিখিতভাবে লিখিত করুন যা ভাগ্যের সাথে সংশ্লিষ্ট চরিত্রের উত্সে উপস্থিত হয়।
mvযাতে আপনি দেখতে পাচ্ছেন যে কী হচ্ছে; আপনি সম্ভবত "-f" পাস করতে চান না কারণ এটি বিদ্যমান ফাইলগুলিকে