কম্পিউটার ইউজারদের অধিকাংশের জন্য ডুপ্লিকেট ফাইল খুঁজে বের করে প্রতিস্থাপন করা একটি সাধারণ প্রয়োজন। ডুপ্লিকেট ফাইল খুঁজে বের করে মুছে ফেলা একটি ক্লান্তিকর কাজ যাতে সময় ও ধৈর্যের দরকার। যদি আপনার মেশিন GNU/Linux-এ চালিত হয়, তবে fdupes ইউটিলিটিরفضলে ডুপ্লিকেট ফাইল খুঁজে বের করা খুব সহজ।
fdupes কী?
Fdupes হল এড্রিয়ান লোপেজ দ্বারা C প্রোগ্রামিং ল্যাঙ্গুয়েজে লেখা একটি লিনাক্স ইউটিলিটি যা MIT লাইসেন্সের অধীনে রিলিজ করা হয়েছে। এই অ্যাপ্লিকেশন দেওয়া ডিরেক্টরি এবং সাব-ডিরেক্টরিতে ডুপ্লিকেট ফাইল খুঁজে বের করতে পারে। Fdupes MD5 সিগনেচার তুলনা করে এবং তারপর বাইট-টু-বাইট তুলনা করে ডুপ্লিকেট চেনে। Fdupes-এর সাথে অনেক অপশন পাস করা যায় ফাইল লিস্ট, ডিলিট এবং হার্ডলিংক দিয়ে ডুপ্লিকেট ফাইল প্রতিস্থাপন করতে।
তুলনা নিচের ক্রমে শুরু হয়:
সাইজ তুলনা > আংশিক MD5 সিগনেচার তুলনা > পুরো MD5 সিগনেচার তুলনা > বাইট-টু-বাইট তুলনা।
লিনাক্সে fdupes ইনস্টল করা
Debian ভিত্তিক সিস্টেম যেমন Ubuntu এবং Linux Mint-এ fdupes-এর লেটেস্ট ভার্সন (fdupes ভার্সন 1.51) ইনস্টল করা খুব সহজ:
$ sudo apt-get install fdupes
CentOS/RHEL এবং Fedora ভিত্তিক সিস্টেমে, fdupes প্যাকেজ ইনস্টল করার জন্য epel রিপোজিটরি অন করতে হবে।
# yum install fdupes # dnf install fdupes [Fedora 22 এর পর থেকে]
দ্রষ্টব্য: ডিফল্ট প্যাকেজ ম্যানেজার yum Fedora 22 থেকে dnf-র মাধ্যমে রিপ্লেস করা হয়েছে…
fdupes কমান্ড কীভাবে ব্যবহার করবেন?
১. প্রদর্শনের উদ্দেশ্যে, একে একটি ডিরেক্টরির (মান লें tecmint) নিচে কিছু ডুপ্লিকেট ফাইল তৈরি করি:
$ mkdir /home/"$USER"/Desktop/tecmint && cd /home/"$USER"/Desktop/tecmint && for i in {1..15}; do echo "I Love Tecmint. Tecmint is a very nice community of Linux Users." > tecmint${i}.txt ; done
উপরোক্ত কমান্ড চালানোর পর, ls কমান্ড দিয়ে ডুপ্লিকেট ফাইলগুলো তৈরি হয়েছে কিনা যাচাই করি।
$ ls -l total 60 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint10.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint11.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint12.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint13.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint14.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint15.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint1.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint2.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint3.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint4.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint5.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint6.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint7.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint8.txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
উপরোক্ত স্ক্রিপ্ট ১৫টি ফাইল তৈরি করে যथा tecmint1.txt, tecmint2.txt…tecmint15.txt এবং প্রতিটি ফাইলে একই ডেটা থাকে:
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
২. এখন tecmint ফোল্ডারের ভেতরে ডুপ্লিকেট ফাইল খুঁজুন।
$ fdupes /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
৩. -r অপশন ব্যবহার করে প্রতিটি ডিরেক্টরি ও সাব-ডিরেক্টরিতে রিকার্সিভলি ডুপ্লিকেট খুঁজুন।
এটি সব ফাইল ও ফোল্ডার জুড়ে রিকার্সিভলি সার্চ করে, ফাইল ও ফোল্ডারের সংখ্যা অনুযায়ী ডুপ্লিকেট স্ক্যান করতে কিছু সময় লাগতে পারে। সেই মাঝপথে আপনাকে টার্মিনালে টোটাল প্রগ্রেস দেখানো হবে, কিছু এই রকম।
$ fdupes -r /home Progress [37780/54747] 69%
৪. -S অপশন ব্যবহার করে ফোল্ডারের ভেতর পাওয়া ডুপ্লিকেটের সাইজ দেখুন।
$ fdupes -S /home/$USER/Desktop/tecmint 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt
৫. -S এবং -r অপশন একসাথে ব্যবহার করে প্রতিটি ডিরেক্টরি ও সাব-ডিরেক্টরির ডুপ্লিকেট ফাইলের সাইজ দেখুন।
$ fdupes -Sr /home/avi/Desktop/ 65 bytes each: /home/tecmint/Desktop/tecmint/tecmint13.txt /home/tecmint/Desktop/tecmint/tecmint8.txt /home/tecmint/Desktop/tecmint/tecmint11.txt /home/tecmint/Desktop/tecmint/tecmint3.txt /home/tecmint/Desktop/tecmint/tecmint4.txt /home/tecmint/Desktop/tecmint/tecmint6.txt /home/tecmint/Desktop/tecmint/tecmint7.txt /home/tecmint/Desktop/tecmint/tecmint9.txt /home/tecmint/Desktop/tecmint/tecmint10.txt /home/tecmint/Desktop/tecmint/tecmint2.txt /home/tecmint/Desktop/tecmint/tecmint5.txt /home/tecmint/Desktop/tecmint/tecmint14.txt /home/tecmint/Desktop/tecmint/tecmint1.txt /home/tecmint/Desktop/tecmint/tecmint15.txt /home/tecmint/Desktop/tecmint/tecmint12.txt 107 bytes each: /home/tecmint/Desktop/resume_files/r-csc.html /home/tecmint/Desktop/resume_files/fc.html
৬. এক ফোল্ডার বা সব ফোল্ডার রিকার্সিভলি সার্চ করার পাশাপাশি, আপনি প্রয়োজন অনুযায়ী দুটি বা তিনটি ফোল্ডারে সার্চ করতে পারেন। যদি প্রয়োজন হয় তবে -S এবং/অথবা -r অপশনও ব্যবহার করতে পারেন।
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
৭. একটি কপি সংরক্ষণ করে ডুপ্লিকেট ফাইল ডিলিট করতে ' -d ' অপশন ব্যবহার করুন। এই অপশন ব্যবহার করার সময় অতিরিক্ত সতর্কতা অবলম্বন করুন অন্যথায় আপনি প্রয়োজনীয় ফাইল/ডেটা হারাতে পারেন এবং মনে রাখবেন প্রক্রিয়াটি অরিকভারি করা যাবে না।
$ fdupes -d /home/$USER/Desktop/tecmint [1] /home/tecmint/Desktop/tecmint/tecmint13.txt [2] /home/tecmint/Desktop/tecmint/tecmint8.txt [3] /home/tecmint/Desktop/tecmint/tecmint11.txt [4] /home/tecmint/Desktop/tecmint/tecmint3.txt [5] /home/tecmint/Desktop/tecmint/tecmint4.txt [6] /home/tecmint/Desktop/tecmint/tecmint6.txt [7] /home/tecmint/Desktop/tecmint/tecmint7.txt [8] /home/tecmint/Desktop/tecmint/tecmint9.txt [9] /home/tecmint/Desktop/tecmint/tecmint10.txt [10] /home/tecmint/Desktop/tecmint/tecmint2.txt [11] /home/tecmint/Desktop/tecmint/tecmint5.txt [12] /home/tecmint/Desktop/tecmint/tecmint14.txt [13] /home/tecmint/Desktop/tecmint/tecmint1.txt [14] /home/tecmint/Desktop/tecmint/tecmint15.txt [15] /home/tecmint/Desktop/tecmint/tecmint12.txt Set 1 of 1, preserve files [1 - 15, all]:
আপনি লক্ষ্য করবেন সব ডুপ্লিকেট লিস্টেড আছে এবং আপনাকে ডিলিট করার জন্য প্রম্পট করা হচ্ছে, হয় একে একে বা নির্দিষ্ট রেঞ্জ বা সব একসাথে। আপনি নিচের মতো নির্দিষ্ট রেঞ্জ সিলেক্ট করে সেই রেঞ্জের ফাইল ডিলিট করতে পারেন।
Set 1 of 1, preserve files [1 - 15, all]: 2-15 [-] /home/tecmint/Desktop/tecmint/tecmint13.txt [+] /home/tecmint/Desktop/tecmint/tecmint8.txt [-] /home/tecmint/Desktop/tecmint/tecmint11.txt [-] /home/tecmint/Desktop/tecmint/tecmint3.txt [-] /home/tecmint/Desktop/tecmint/tecmint4.txt [-] /home/tecmint/Desktop/tecmint/tecmint6.txt [-] /home/tecmint/Desktop/tecmint/tecmint7.txt [-] /home/tecmint/Desktop/tecmint/tecmint9.txt [-] /home/tecmint/Desktop/tecmint/tecmint10.txt [-] /home/tecmint/Desktop/tecmint/tecmint2.txt [-] /home/tecmint/Desktop/tecmint/tecmint5.txt [-] /home/tecmint/Desktop/tecmint/tecmint14.txt [-] /home/tecmint/Desktop/tecmint/tecmint1.txt [-] /home/tecmint/Desktop/tecmint/tecmint15.txt [-] /home/tecmint/Desktop/tecmint/tecmint12.txt
৮. সেফটি পয়েন্ট অফ ভিউ থেকে, আপনি ‘fdupes’ আউটপুট ফাইলে প্রিন্ট করে তারপর টেক্সট ফাইল চেক করে ডিসাইড করতে পারেন কোন ফাইল ডিলিট করবেন। এটি আপনার ফাইল অকস্মাৎ ডিলিট হয়ে যাওয়ার চান্স কমিয়ে দেবে। আপনি করতে পারেন:
$ fdupes -Sr /home > /home/fdupes.txt
দ্রষ্টব্য: আপনি ‘/home’ আপনার প্রয়োজনীয় ফোল্ডার দিয়ে রিপ্লেস করতে পারেন। রিকার্সিভ সার্চ এবং প্রিন্ট সাইজের জন্য ‘-r’ এবং ‘-S’ অপশন ব্যবহার করুন।
৯. প্রতিটি ম্যাচ সেট থেকে প্রথম ফাইল বাদ দিতে ‘-f’ অপশন ব্যবহার করুন।
প্রথমে ডিরেক্টরির ফাইলগুলো লিস্ট করুন।
$ ls -l /home/$USER/Desktop/tecmint total 20 -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (3rd copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (4th copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (another copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9 (copy).txt -rw-r--r-- 1 tecmint tecmint 65 Aug 8 11:22 tecmint9.txt
তারপর প্রতিটি ম্যাচ সেট থেকে প্রথম ফাইল বাদ দিন।
$ fdupes -f /home/$USER/Desktop/tecmint /home/tecmint/Desktop/tecmint9 (copy).txt /home/tecmint/Desktop/tecmint9 (3rd copy).txt /home/tecmint/Desktop/tecmint9 (another copy).txt /home/tecmint/Desktop/tecmint9 (4th copy).txt
১০. ইনস্টল করা fdupes-এর ভার্সন চেক করুন।
$ fdupes --version fdupes 1.51
১১. fdupes-র কোনো হেল্প দরকার হলে ‘-h’ স্যুইচ ব্যবহার করুন।
$ fdupes -h Usage: fdupes [options] DIRECTORY... -r --recurse for every directory given follow subdirectories encountered within -R --recurse: for each directory given after this option follow subdirectories encountered within (note the ':' at the end of the option, manpage for more details) -s --symlinks follow symlinks -H --hardlinks normally, when two or more files point to the same disk area they are treated as non-duplicates; this option will change this behavior -n --noempty exclude zero-length files from consideration -A --nohidden exclude hidden files from consideration -f --omitfirst omit the first file in each set of matches -1 --sameline list each set of matches on a single line -S --size show size of duplicate files -m --summarize summarize dupe information -q --quiet hide progress indicator -d --delete prompt user for files to preserve and delete all others; important: under particular circumstances, data may be lost when using this option together with -s or --symlinks, or when specifying a particular directory more than once; refer to the fdupes documentation for additional information -N --noprompt together with --delete, preserve the first file in each set of duplicates and delete the rest without prompting the user -v --version display fdupes version -h --help display this help message
আজ এই পর্যন্ত। আপনি আজ পর্যন্ত লিনাক্সে ডুপ্লিকেট ফাইল কীভাবে খুঁজে বের করতেন এবং ডিলিট করতেন? এবং এই ইউটিলিটি সম্পর্কে আপনার মতামত জানান। নিচে কমেন্ট সেকশনে আপনার মূল্যবান ফিডব্যাক দিন এবং লাইক/শেয়ার করে আমাদের ছড়িয়ে দিতে সাহায্য করুন।
আমি fslint নামে আর একটি ইউটিলিটির ওপর কাজ করছি ডুপ্লিকেট ফাইল মুছে ফেলার জন্য, শীঘ্রই পোস্ট করব এবং আপনারা পড়তে পছন্দ করবেন।