fdupes - ലിനക്സിൽ ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ കണ്ടെത്താനും ഇല്ലാതാക്കാനുമുള്ള ഒരു കമാൻഡ് ലൈൻ ടൂൾ


മിക്ക കമ്പ്യൂട്ടർ ഉപയോക്താക്കൾക്കും ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ കണ്ടെത്തി മാറ്റിസ്ഥാപിക്കേണ്ടത് ഒരു സാധാരണ ആവശ്യമാണ്. ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ കണ്ടെത്തുന്നതും നീക്കംചെയ്യുന്നതും സമയവും ക്ഷമയും ആവശ്യപ്പെടുന്ന മടുപ്പിക്കുന്ന ജോലിയാണ്. 'fdupes' യൂട്ടിലിറ്റിക്ക് നന്ദി, നിങ്ങളുടെ മെഷീൻ GNU/Linux ആണെങ്കിൽ ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ കണ്ടെത്തുന്നത് വളരെ എളുപ്പമായിരിക്കും.

എംഐടി ലൈസൻസിന് കീഴിൽ പുറത്തിറക്കിയ സി പ്രോഗ്രാമിംഗ് ലാംഗ്വേജിൽ അഡ്രിയാൻ ലോപ്പസ് എഴുതിയ ഒരു ലിനക്സ് യൂട്ടിലിറ്റിയാണ് Fdupes. നൽകിയിരിക്കുന്ന ഡയറക്uടറികളിലും ഉപ ഡയറക്uടറികളിലും ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ കണ്ടെത്താൻ അപ്ലിക്കേഷന് കഴിയും. ഫയലുകളുടെ MD5 സിഗ്നേച്ചർ താരതമ്യം ചെയ്തുകൊണ്ട് Fdupes ഡ്യൂപ്ലിക്കേറ്റുകൾ തിരിച്ചറിയുന്നു, തുടർന്ന് ഒരു ബൈറ്റ്-ടു-ബൈറ്റ് താരതമ്യം. ഡ്യൂപ്ലിക്കേറ്റുകളിലേക്കുള്ള ഹാർഡ്uലിങ്കുകൾ ഉപയോഗിച്ച് ഫയലുകൾ ലിസ്റ്റുചെയ്യുന്നതിനും ഇല്ലാതാക്കുന്നതിനും മാറ്റിസ്ഥാപിക്കുന്നതിനും ധാരാളം ഓപ്ഷനുകൾ Fdupes ഉപയോഗിച്ച് കൈമാറാൻ കഴിയും.

ഈ ക്രമത്തിൽ താരതമ്യം ആരംഭിക്കുന്നു:

വലിപ്പം താരതമ്യം > ഭാഗിക MD5 സിഗ്നേച്ചർ താരതമ്യം > പൂർണ്ണ MD5 ഒപ്പ് താരതമ്യം > ബൈറ്റ്-ടു-ബൈറ്റ് താരതമ്യം.

ലിനക്സിൽ fdupes ഇൻസ്റ്റാൾ ചെയ്യുക

ഉബുണ്ടു, ലിനക്സ് മിന്റ് തുടങ്ങിയ ഡെബിയൻ അധിഷ്ഠിത സിസ്റ്റങ്ങളിൽ താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നത് പോലെ എളുപ്പമുള്ള fdupes-ന്റെ ഏറ്റവും പുതിയ പതിപ്പ് (fdupes പതിപ്പ് 1.51) ഇൻസ്റ്റാളുചെയ്യുന്നു.

$ sudo apt-get install fdupes

CentOS/RHEL, Fedora അധിഷ്ഠിത സിസ്റ്റങ്ങളിൽ, fdupes പാക്കേജ് ഇൻസ്റ്റോൾ ചെയ്യുന്നതിനായി നിങ്ങൾ epel repository ഓണാക്കേണ്ടതുണ്ട്.

# yum install fdupes
# dnf install fdupes    [On Fedora 22 onwards]

ശ്രദ്ധിക്കുക: ഡിഫോൾട്ട് പാക്കേജ് മാനേജർ yum-ന് പകരം dnf-ൽ ഫെഡോറ 22 മുതൽ...

fdupes കമാൻഡ് എങ്ങനെ ഉപയോഗിക്കാം?

1. ഡെമോൺസ്uട്രേഷൻ ആവശ്യത്തിനായി, ഒരു ഡയറക്uടറിക്ക് കീഴിൽ (ടെക്uമിന്റ് എന്ന് പറയുക) ലളിതമായി കുറച്ച് ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ സൃഷ്uടിക്കാം:

$ 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

മുകളിലുള്ള കമാൻഡ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ സൃഷ്uടിച്ചതാണോ അല്ലെങ്കിൽ 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

മുകളിലെ സ്ക്രിപ്റ്റ് 15 ഫയലുകൾ സൃഷ്ടിക്കുന്നു, അതായത് tecmint1.txt, tecmint2.txt...tecmint15.txt കൂടാതെ എല്ലാ ഫയലുകളിലും ഒരേ ഡാറ്റ അടങ്ങിയിരിക്കുന്നു, അതായത്,

"I Love Tecmint. Tecmint is a very nice community of Linux Users."

2. ഇപ്പോൾ 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

3. -r ഓപ്uഷൻ ഉപയോഗിച്ച് സബ് ഡയറക്uടറികൾ ഉൾപ്പെടെ എല്ലാ ഡയറക്uടറിക്കു കീഴിലും തനിപ്പകർപ്പുകൾ ആവർത്തിച്ച് തിരയുക.

ഇത് എല്ലാ ഫയലുകളിലും ഫോൾഡറുകളിലും ആവർത്തിച്ച് തിരയുന്നു, ഫയലുകളുടെയും ഫോൾഡറുകളുടെയും എണ്ണം അനുസരിച്ച് ഡ്യൂപ്ലിക്കേറ്റുകൾ സ്കാൻ ചെയ്യുന്നതിന് കുറച്ച് സമയമെടുക്കും. അതിനിടയിൽ, ടെർമിനലിലെ മൊത്തം പുരോഗതി നിങ്ങൾക്ക് അവതരിപ്പിക്കും, ഇതുപോലുള്ള ഒന്ന്.

$ fdupes -r /home

Progress [37780/54747] 69%

4. -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

5. ഒരേ സമയം -S, -r ഓപ്uഷനുകൾ ഉപയോഗിക്കുന്ന എല്ലാ ഡയറക്uടറികൾക്കും ഉപഡയറക്uടറികൾക്കുമുള്ള തനിപ്പകർപ്പ് ഫയലുകളുടെ വലുപ്പം നിങ്ങൾക്ക് കാണാൻ കഴിയും:

$ 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

6. ഒരു ഫോൾഡറിലോ എല്ലാ ഫോൾഡറുകളിലോ ആവർത്തിച്ച് തിരയുകയല്ലാതെ, ആവശ്യാനുസരണം നിങ്ങൾക്ക് രണ്ട് ഫോൾഡറുകളിലോ മൂന്ന് ഫോൾഡറുകളിലോ തിരഞ്ഞെടുക്കാം. ആവശ്യമെങ്കിൽ നിങ്ങൾക്ക് ഓപ്ഷൻ -S കൂടാതെ/അല്ലെങ്കിൽ -r ഉപയോഗിക്കാമെന്ന് പ്രത്യേകം പറയേണ്ടതില്ല.

$ fdupes /home/avi/Desktop/ /home/avi/Templates/

7. ഒരു പകർപ്പ് സൂക്ഷിക്കുമ്പോൾ തനിപ്പകർപ്പ് ഫയലുകൾ ഇല്ലാതാക്കാൻ നിങ്ങൾക്ക് '-d' ഓപ്ഷൻ ഉപയോഗിക്കാം. ഈ ഓപ്uഷൻ ഉപയോഗിക്കുമ്പോൾ കൂടുതൽ ശ്രദ്ധിക്കണം, അല്ലാത്തപക്ഷം നിങ്ങൾക്ക് ആവശ്യമായ ഫയലുകൾ/ഡാറ്റ നഷ്uടപ്പെടാൻ ഇടയുണ്ട്, മാത്രമല്ല പ്രക്രിയ വീണ്ടെടുക്കാൻ കഴിയില്ലെന്ന് മനസ്സിൽ വയ്ക്കുക.

$ 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]: 

എല്ലാ തനിപ്പകർപ്പുകളും ലിസ്റ്റുചെയ്uതിരിക്കുന്നത് നിങ്ങൾ ശ്രദ്ധിച്ചേക്കാം, ഒന്നുകിൽ ഒന്നുകിൽ അല്ലെങ്കിൽ ഒരു നിശ്ചിത ശ്രേണി അല്ലെങ്കിൽ എല്ലാം ഒറ്റയടിക്ക് ഇല്ലാതാക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടും. നിർദ്ദിഷ്uട ശ്രേണിയിലുള്ള ഫയലുകളുടെ ഫയലുകൾ ഇല്ലാതാക്കാൻ ചുവടെയുള്ളത് പോലെയുള്ള ഒരു ശ്രേണി നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം.

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

8. സുരക്ഷാ വീക്ഷണകോണിൽ നിന്ന്, ഫയലിലേക്ക് 'fdupes' ന്റെ ഔട്ട്പുട്ട് പ്രിന്റ് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം, തുടർന്ന് ഏത് ഫയൽ ഇല്ലാതാക്കണമെന്ന് തീരുമാനിക്കാൻ ടെക്സ്റ്റ് ഫയൽ പരിശോധിക്കുക. ഇത് നിങ്ങളുടെ ഫയൽ ആകസ്മികമായി ഇല്ലാതാക്കാനുള്ള സാധ്യത കുറയ്ക്കുന്നു. നിങ്ങൾക്ക് ചെയ്യാവുന്നതാണ്:

$ fdupes -Sr /home > /home/fdupes.txt

ശ്രദ്ധിക്കുക: നിങ്ങൾക്ക് ആവശ്യമുള്ള ഫോൾഡർ ഉപയോഗിച്ച് '/home' മാറ്റിസ്ഥാപിക്കാം. നിങ്ങൾക്ക് യഥാക്രമം ആവർത്തിച്ച് തിരയാനും വലുപ്പം പ്രിന്റ് ചെയ്യാനും താൽപ്പര്യമുണ്ടെങ്കിൽ '-r', '-S' എന്നീ ഓപ്ഷനുകളും ഉപയോഗിക്കുക.

9. ഓപ്uഷൻ '-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

10. fdupes-ന്റെ ഇൻസ്റ്റാൾ ചെയ്ത പതിപ്പ് പരിശോധിക്കുക.

$ fdupes --version

fdupes 1.51

11. നിങ്ങൾക്ക് 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

അത് ഇപ്പോൾ എല്ലാവർക്കും വേണ്ടിയുള്ളതാണ്. Linux-ൽ ഇതുവരെ ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ നിങ്ങൾ എങ്ങനെ കണ്ടെത്തുകയും ഇല്ലാതാക്കുകയും ചെയ്തുവെന്ന് എന്നെ അറിയിക്കൂ? കൂടാതെ ഈ യൂട്ടിലിറ്റിയെക്കുറിച്ചുള്ള നിങ്ങളുടെ അഭിപ്രായവും എന്നോട് പറയുക. നിങ്ങളുടെ വിലയേറിയ ഫീഡ്uബാക്ക് ചുവടെയുള്ള അഭിപ്രായ വിഭാഗത്തിൽ ഇടുക, ഞങ്ങളെ ലൈക്ക്/ഷെയർ ചെയ്യാനും പ്രചരിപ്പിക്കാനും ഞങ്ങളെ സഹായിക്കാനും മറക്കരുത്.

ഡ്യൂപ്ലിക്കേറ്റ് ഫയലുകൾ നീക്കം ചെയ്യുന്നതിനായി fslint എന്ന മറ്റൊരു യൂട്ടിലിറ്റിയിൽ ഞാൻ പ്രവർത്തിക്കുന്നു, ഉടൻ തന്നെ പോസ്റ്റ് ചെയ്യും, നിങ്ങൾ വായിക്കാൻ ഇഷ്ടപ്പെടും.