পুনঃনামকরণ - লিনাক্সে একাধিক ফাইলের নামকরণের জন্য একটি কমান্ড লাইন সরঞ্জাম


আমরা প্রায়শই লিনাক্সে একটি ফাইলের নাম পরিবর্তন করতে "এমভি" কমান্ড ব্যবহার করি। তবে একাধিক বা গ্রুপের ফাইলগুলির নাম পরিবর্তন করে টার্মিনালে এটি খুব কঠিন কাজ করে।

লিনাক্স একটি খুব শক্তিশালী অন্তর্নির্মিত সরঞ্জাম নিয়ে আসে যার নাম নামকরণ হয়। পুনর্নবীকরণ কমান্ডটি একাধিক বা ফাইলের গোষ্ঠীটির নামকরণ, ছোট ছোট ফাইলগুলিকে পুনরায় নামকরণ, বড় হাতের ফাইলগুলিতে পুনরায় নামকরণ এবং পার্ল এক্সপ্রেশন ব্যবহার করে ফাইলগুলিকে ওভাররাইট করতে ব্যবহৃত হয়।

"পুনর্নামকরণ" কমান্ডটি পার্ল স্ক্রিপ্টের একটি অংশ এবং এটি অনেকগুলি লিনাক্স বিতরণে "/ usr/bin /" এর অধীনে থাকে। পুনরায় নাম কমান্ডের অবস্থান জানতে আপনি "কোন" কমান্ডটি চালাতে পারেন।

$ which rename
/usr/bin/rename
rename 's/old-name/new-name/' files

পুনর্নবীকরণ কমান্ডটি বাধ্যতামূলক পার্ল এক্সপ্রেশন সহ কয়েকটি alচ্ছিক আর্গুমেন্টের সাথে আসে যা প্রকৃত কাজ করতে পুনরায় নাম কমান্ডকে গাইড করে।

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

  1. -v: ফাইলগুলির নাম মুদ্রণ করুন সাফল্যের সাথে নাম পরিবর্তন করা হয়েছে
  2. -n: ফাইলগুলির নতুন নামকরণ করা হবে তা দেখান
  3. -f: বিদ্যমান ফাইলগুলি ওভাররাইট করতে বাধ্য করুন।
  4. পার্লেক্সপ্রপ: পার্ল এক্সপ্রেশন

এই ইউটিলিটিটি আরও ভালভাবে বোঝার জন্য, আমরা নিবন্ধে এই আদেশের কয়েকটি ব্যবহারিক উদাহরণ আলোচনা করেছি।

1. একটি বেসিক নামকরণ কমান্ড উদাহরণ

ধরুন যে আপনি “.html” এক্সটেনশান সহ গুচ্ছ ফাইলগুলি করেছেন এবং আপনি একবারে সমস্ত ".html" ফাইলের নাম ".এফপিএল" রাখতে চান। উদাহরণস্বরূপ, “.html” এক্সটেনশন সহ ফাইলগুলির তালিকা পরীক্ষা করতে প্রথমে একটি "ls -l" করুন।

# [email :~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

এখন, আপনি এই ফাইলগুলির এক্সটেনশনটি ".html" থেকে ".php" তে পরিবর্তন করতে চান। পার্ল এক্সপ্রেশন দিয়ে নীচের মত আপনি নীচের "পুনর্নবীকরণ" কমান্ডটি ব্যবহার করতে পারেন।

[email :~$ rename 's/\.html$/\.php/' *.html

দ্রষ্টব্য: উপরের কমান্ডে আমরা দুটি যুক্তি ব্যবহার করেছি।

  1. প্রথম যুক্তি হ'ল পার্ল এক্সপ্রেশন যা .এইচটিএমএল। php।
  2. এর বিকল্প করে
  3. দ্বিতীয় যুক্তি পুনর্নবীকরণ কমান্ডকে *। php।
  4. সহ সমস্ত ফাইলের বিকল্প পরিবর্তন করতে বলে

প্রম্পটে ls -l করে সমস্ত ফাইলের ".php" এক্সটেনশনে নামকরণ হয়েছে কিনা তা যাচাই করা যাক।

[email :~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.php
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.php
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.php
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.php

এখন আপনি উপরে দেখতে পাচ্ছেন যে সমস্ত এইচটিএমএল ফাইলের নাম পিএইচপি করা হয়েছে।

পুনরায় নামকরণ কমান্ড চালানোর আগে পরিবর্তনগুলি পরীক্ষা করুন

গুরুতর বা বড় নামকরণের কাজ করার সময়, আপনি সর্বদা "-n" যুক্তি দিয়ে পুনর্নবীকরণ কমান্ড চালিয়ে পরিবর্তনগুলি পরীক্ষা করতে পারেন। "-N" প্যারামিটারটি আপনাকে বলবে ঠিক কী পরিবর্তনগুলি ঘটেছিল তবে পরিবর্তনগুলি বাস্তবের জন্য করা হয় না। এখানে, নীচের কমান্ডের উদাহরণ।

[email :~$ rename -n 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

দ্রষ্টব্য: উপরের কমান্ড আউটপুটটি কেবলমাত্র পরিবর্তনগুলি প্রদর্শন করে, তবে বাস্তবে পরিবর্তনগুলি সম্পন্ন হয় না, যদি না আপনি "-n" স্যুইচ ছাড়াই কমান্ডটি না চালান।

৩. নাম পরিবর্তন আউটপুট মুদ্রণ করুন

আমরা দেখেছি যে নাম পরিবর্তন কমান্ড এটির পরিবর্তনের কোনও তথ্য প্রদর্শন করে না। সুতরাং, আপনি যদি পুনর্নবীকরণ কমান্ডের বিবরণ পেতে চান (যেমন আমরা "-n" বিকল্পটি ব্যবহার করেছিলাম), তবে আমরা পুনরায় নামকরণ কমান্ডের দ্বারা সম্পাদিত সমস্ত পরিবর্তনের সম্পূর্ণ বিবরণ সফলভাবে মুদ্রণের জন্য "-v" বিকল্পটি ব্যবহার করি।

[email :~$ rename -v 's/\.php$/\.html/' *.php

cricket.php renamed as cricket.html
entertainment.php renamed as entertainment.html
health.php renamed as health.html
lifestyle.php renamed as lifestyle.html
news.php renamed as news.html
photos.php renamed as photos.html
sports.php renamed as sports.html

৪. সমস্ত ছোট ছোট হাতের অক্ষরে বড় হাতের ও রূপে রূপান্তর করুন

ছোট হাতের অক্ষরের সাথে সমস্ত ফাইলের নাম পরিবর্তন করতে বাচ করতে upperর্ধ্ব ক্ষেত্রে। উদাহরণস্বরূপ, আমি নীচের থেকে উপরের ক্ষেত্রে এই সমস্ত ফাইলগুলি গোপন করতে চাই।

[email :~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

পার্ল এক্সপ্রেশন সহ কেবল নীচের কমান্ডটি ব্যবহার করুন।

[email :~$ rename 'y/a-z/A-Z/' *.html

উপরের কমান্ডটি কার্যকর করার পরে, আপনি "ls -l" করে পরিবর্তনগুলি পরীক্ষা করতে পারেন।

[email :~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 ENTERTAINMENT.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 NEWS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 PHOTOS.HTML
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 SPORTS.HTML

আপনি দেখতে পাচ্ছেন যে উপরের কমান্ডটি সমস্ত ছোট মামলার ফাইলের নাম (.HTML এক্সটেনশন সহ) আপার কেস এ পুনরায় নামকরণ করেছে।

একইভাবে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে সমস্ত বড় হাতের অক্ষরকে নিম্ন কেসে রূপান্তর করতে পারেন।

[email :~$ rename 'y/A-Z/a-z/' *.HTML
[email :~$ ls -l
total 22532
-rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
-rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
-rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
-rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
-rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
-rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
-rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

5. ফাইলের নামের প্রথম অক্ষরটি মূলধন করুন

প্রতিটি ফাইলের নামের প্রথম অক্ষরকে মূলধন করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

# rename 's/\b(\w)/\U$1/g' *.ext

6. বিদ্যমান ফাইলগুলি ওভাররাইট করুন

আপনি যদি বিদ্যমান ফাইলগুলিকে বলপূর্বক ওভাররাইট করতে চান তবে নীচের মত "-f" বিকল্পটি ব্যবহার করুন।

[email :~$ rename -f 's/a/b/' *.html

আপনি যদি পুনর্নবীকরণ কমান্ড সম্পর্কে আরও জানতে চান তবে টার্মিনালে "man rename" টাইপ করুন।

আপনি যদি কমান্ড লাইন থেকে একাধিক বা ব্যাচের পুনরায় নামকরণের ফাইল নিয়ে কাজ করে থাকেন তবে পুনরায় নামকরণ কমান্ডটি খুব কার্যকর। চেষ্টা করে দেখুন এবং আমাকে জানান, ফাইলের নাম পরিবর্তনের ক্ষেত্রে কতটা কার্যকর is