fdupes - ເຄື່ອງມືເສັ້ນ ຄຳ ສັ່ງເພື່ອຄົ້ນຫາແລະລຶບໄຟລ໌ຊໍ້າໃນ Linux


ມັນແມ່ນຄວາມຕ້ອງການທົ່ວໄປທີ່ຈະຊອກຫາແລະປ່ຽນເອກະສານຊ້ ຳ ກັນ ສຳ ລັບຜູ້ໃຊ້ຄອມພິວເຕີສ່ວນໃຫຍ່. ຊອກຫາແລະຖອດເອກະສານທີ່ຊ້ ຳ ຊ້ອນແມ່ນວຽກທີ່ອິດເມື່ອຍທີ່ຕ້ອງການເວລາແລະຄວາມອົດທົນ. ຊອກຫາເອກະສານທີ່ຊ້ ຳ ກັນສາມາດຫາໄດ້ງ່າຍຖ້າເຄື່ອງຂອງທ່ານຂັບເຄື່ອນໂດຍ GNU/Linux, ຂໍຂອບໃຈກັບເຄື່ອງມື 'fdupes'.

Fdupes ແມ່ນອຸປະກອນ Linux ທີ່ຂຽນໂດຍ Adrian Lopez ໃນ C Programming Language ທີ່ປ່ອຍອອກມາພາຍໃຕ້ໃບອະນຸຍາດ MIT. ຄໍາຮ້ອງສະຫມັກແມ່ນສາມາດຊອກຫາໄຟລ໌ທີ່ຊ້ໍາກັນໃນຊຸດຂອງໄດເລກະທໍລີແລະລາຍຊື່ຍ່ອຍ. Fdupes ຮັບຮູ້ການຊໍ້າຊ້ອນໂດຍການປຽບທຽບລາຍເຊັນ MD5 ຂອງເອກະສານຕາມດ້ວຍການປຽບທຽບ byte-to-byte. ຕົວເລືອກຫຼາຍຢ່າງສາມາດຖືກສົ່ງຜ່ານດ້ວຍ Fdupes ເພື່ອລົງບັນຊີ, ລຶບແລະທົດແທນເອກະສານດ້ວຍ hardlinks ເພື່ອຊໍ້າຊ້ອນ.

ການປຽບທຽບເລີ່ມຕົ້ນຕາມ ລຳ ດັບ:

ການປຽບທຽບຂະ ໜາດ> ການປຽບທຽບລາຍເຊັນ MD5 ບາງສ່ວນ> ການປຽບທຽບລາຍເຊັນ MD5 ເຕັມ> ການປຽບທຽບລາຍເຊັນກັບໄບ.

ຕິດຕັ້ງ fdupes ໃນ Linux

ການຕິດຕັ້ງ fdupes ລຸ້ນ ໃໝ່ (fdupes version 1.51) ງ່າຍຄືກັບການເຮັດວຽກຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້ໃນລະບົບທີ່ອີງໃສ່ Debian ເຊັ່ນ Ubuntu ແລະ Linux Mint.

$ sudo apt-get install fdupes

ໃນລະບົບທີ່ອີງໃສ່ CentOS/RHEL ແລະ Fedora, ທ່ານຕ້ອງເປີດໃຊ້ epel repository ເພື່ອຕິດຕັ້ງຊຸດ fdupes.

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

ຫມາຍເຫດ: yum ຜູ້ຈັດການຊຸດເລີ່ມຕົ້ນຈະຖືກແທນທີ່ໂດຍ dnf ຈາກ Fedora 22 ເປັນຕົ້ນໄປ…

ໃຊ້ ຄຳ ສັ່ງ fdupes ແນວໃດ?

1. ສຳ ລັບຈຸດປະສົງການສາທິດ, ໃຫ້ສ້າງເອກະສານທີ່ຊ້ ຳ ຊ້ອນກັນພາຍໃຕ້ໄດເລກະທໍລີ (ເວົ້າວ່າ 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

ຕົວອັກສອນຂ້າງເທິງສ້າງ 15 ເອກະສານຄື tecmint1.txt, tecmint2.txt … tecmint15.txt ແລະທຸກໆເອກະສານມີຂໍ້ມູນຄືກັນກັບ i.e. ,

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

2. ດຽວນີ້ຄົ້ນຫາເອກະສານທີ່ຊ້ ຳ ກັນພາຍໃນ tecmint ຂອງ folder.

$ 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. ຄົ້ນຫາ ສຳ ເນົາຊ້ ຳ ຄືນພາຍໃຕ້ທຸກໆໄດເລກະທໍລີລວມທັງລາຍການຍ່ອຍຂອງມັນໂດຍໃຊ້ຕົວເລືອກລາຍການ.

ມັນຄົ້ນຫາໃນທຸກເອກະສານແລະໂຟນເດີຄືນ ໃໝ່, ຂື້ນກັບ ຈຳ ນວນແຟ້ມແລະແຟ້ມມັນຈະໃຊ້ເວລາໃນການສະແກນຊໍ້າ. ໃນເວລານັ້ນ ໝາຍ ຄວາມວ່າ, ທ່ານຈະຖືກ ນຳ ສະ ເໜີ ຄວາມກ້າວ ໜ້າ ທັງ ໝົດ ໃນສະຖານີ, ບາງສິ່ງບາງຢ່າງເຊັ່ນນີ້.

$ 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 ພ້ອມໆກັນ, ດັ່ງ:

$ 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'. ການດູແລພິເສດຄວນໄດ້ຮັບການປະຕິບັດໃນຂະນະທີ່ໃຊ້ຕົວເລືອກນີ້ທ່ານອາດຈະຕ້ອງການທີ່ຈະຊອກຫາໄຟລ໌/ຂໍ້ມູນທີ່ ຈຳ ເປັນແລະຄິດວ່າມັນບໍ່ສາມາດຄົ້ນຫາໄດ້.

$ 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

8. ຈາກຈຸດຄວາມປອດໄພຂອງມຸມມອງ, ທ່ານອາດຈະຢາກພິມຜົນຜະລິດຂອງ 'fdupes' ເພື່ອຍື່ນແລະຫຼັງຈາກນັ້ນກວດເບິ່ງເອກະສານຂໍ້ຄວາມເພື່ອຕັດສິນໃຈວ່າຈະລຶບໄຟລ໌ໃດ. ນີ້ຫຼຸດລົງໂອກາດທີ່ຈະໄດ້ຮັບການລຶບໄຟລ໌ຂອງທ່ານໂດຍບັງເອີນ. ທ່ານອາດຈະເຮັດ:

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

ໝາຍ ເຫດ: ທ່ານອາດຈະປ່ຽນແທນ '/ ກັບບ້ານ' ກັບໂຟນເດີທີ່ທ່ານຕ້ອງການ. ໃຊ້ຕົວເລືອກ ‘-r’ ແລະ ‘-S’ ຖ້າທ່ານຕ້ອງການຄົ້ນຫາແບບ ໃໝ່ ແລະພິມຂະ ໜາດ ຕາມ ລຳ ດັບ.

9. ທ່ານອາດຈະຍົກເລີກເອກະສານ ທຳ ອິດຈາກແຕ່ລະຊຸດທີ່ກົງກັນໂດຍການເລືອກຕົວເລືອກ '-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. ຖ້າທ່ານຕ້ອງການຄວາມຊ່ວຍເຫລືອກ່ຽວກັບກະດູກສັນຫຼັງທ່ານອາດຈະໃຊ້ປຸ່ມປ່ຽນ '-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? ແລະຍັງບອກຂ້ອຍຄວາມຄິດເຫັນຂອງເຈົ້າກ່ຽວກັບຜົນປະໂຫຍດນີ້. ໃສ່ ຄຳ ຕິຊົມທີ່ມີຄຸນຄ່າຂອງທ່ານໃນສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ແລະຢ່າລືມທີ່ຈະມັກ/ແບ່ງປັນພວກເຮົາແລະຊ່ວຍພວກເຮົາໃຫ້ເຜີຍແຜ່.

ຂ້ອຍ ກຳ ລັງເຮັດວຽກກ່ຽວກັບຜົນປະໂຫຍດອີກອັນ ໜຶ່ງ ທີ່ເອີ້ນວ່າ fslint ເພື່ອ ກຳ ຈັດໄຟລ໌ທີ່ຊ້ ຳ ກັນ, ຈະລົງໃນໄວໆນີ້ແລະເຈົ້າກໍ່ຈະມັກອ່ານ.