লিনাক্সের ছোট ফাইলগুলির জন্য সমস্ত ফাইল এবং ডিরেক্টরি নাম পরিবর্তন করুন


আমাদের পূর্ববর্তী নিবন্ধে, আমরা বর্ণিত করেছি যে কোনও প্রদত্ত ডিরেক্টরিতে ফাইল এবং উপ-ডিরেক্টরিগুলির সংখ্যা কীভাবে গণনা করতে হবে। এই গাইডটি আপনাকে দেখায় যে কীভাবে সমস্ত ফাইল এবং ডিরেক্টরিগুলির নাম লিনাক্সে ছোট ছোট করে রাখা যায়।

এটি অর্জনের বেশ কয়েকটি উপায় রয়েছে তবে আমরা দুটি সবচেয়ে কার্যকর এবং নির্ভরযোগ্য পদ্ধতির ব্যাখ্যা করব। এই গাইডের উদ্দেশ্যটির জন্য, আমরা ফাইল নামের একটি ডিরেক্টরি ব্যবহার করেছি যার নিম্নলিখিত কাঠামো রয়েছে:

# find Files -depth

1. ফাইন্ড, এক্সার্গস এবং একসাথে কমান্ডগুলির নাম পরিবর্তন করে

নিম্ন ডিরেক্টরিতে নিম্ন ডিরেক্টরিতে সমস্ত ডিরেক্টরি বা সাব ডিরেক্টরি ডিরেক্টরিতে নতুন নামকরণের জন্য ইউটিলিটি সন্ধান করুন:

$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

উপরের কমান্ডে ব্যবহৃত বিকল্পগুলির ব্যাখ্যা।

  • - ডিপথ - ডিরেক্টরি প্রতিটি ডিরেক্টরি ডিরেক্টরি নিজেই আগে তালিকাভুক্ত।
  • -n 1 - xargs কে আউটপুট সন্ধান থেকে কমান্ড লাইনে সর্বাধিক একটি আর্গুমেন্ট ব্যবহার করার নির্দেশ দেয় li

ফাইল ডিরেক্টরিতে ছোট ছোট ফাইলগুলিতে ফাইল এবং সাব ডিরেক্টরি ডিরেক্টরি পরিবর্তন করার পরে নমুনা আউটপুট।

নীচে বর্ণিত হিসাবে স্ক্রিপ্টে এমভি কমান্ড ব্যবহার করে অন্য বিকল্প উপায়।

2. শেল স্ক্রিপ্টে ফাইন্ড এবং এমভি কমান্ড ব্যবহার করে

প্রথমে আপনার স্ক্রিপ্ট তৈরি করুন (আপনি নিজের পছন্দের যে কোনওটির নাম দিতে পারেন):

$ cd ~/bin
$ vi rename-files.sh

তারপরে এটিতে নীচের কোডটি যুক্ত করুন।

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

ফাইলটি সংরক্ষণ এবং বন্ধ করুন, তারপরে স্ক্রিপ্টটি সম্পাদনযোগ্য করুন এবং এটি চালান:

$ chmod +x rename-files.sh
$ rename-files.sh Files     #Specify Directory Name

আপনি নিম্নলিখিত নিম্নলিখিত নিবন্ধগুলি পড়তে পছন্দ করতে পারেন।

  1. লিনাক্সে "সবকিছুই একটি ফাইল" এবং ফাইলগুলির ধরণের ব্যাখ্যা
  2. fswatch - লিনাক্সে ফাইল এবং ডিরেক্টরি পরিবর্তন বা পরিবর্তনগুলি পর্যবেক্ষণ করে
  3. ফ্যাসড - একটি কমান্ডলাইন সরঞ্জাম যা ফাইল এবং ডিরেক্টরিগুলিতে দ্রুত অ্যাক্সেস সরবরাহ করে।
  4. এফস্লিন্ট - লিনাক্সে ডুপ্লিকেট ফাইলগুলি কীভাবে সন্ধান এবং সরানো যায়

এই গাইড ইন, আমরা আপনাকে লিনাক্সের ছোট ফাইলের সমস্ত ফাইল এবং ডিরেক্টরিগুলির নাম পরিবর্তন করে কীভাবে ব্যাখ্যা করব। যদি কোনও ত্রুটি পেতে থাকে তবে দয়া করে নীচের প্রতিক্রিয়া ফর্মের মাধ্যমে আমাদের আপ করুন। আপনি আমাদের পাশাপাশি এটির যে কোনও অন্য পদ্ধতি অফার করতে পারেন।