fdupes - Usa ka Himan sa Command Line sa Pagpangita ug Pagtangtang sa mga Duplicate nga File sa Linux
Kini usa ka kasagaran nga kinahanglanon sa pagpangita ug pag-ilis sa mga duplicate nga mga file alang sa kadaghanan sa mga tiggamit sa kompyuter. Ang pagpangita ug pagtangtang sa mga duplicate nga mga file usa ka kapoy nga trabaho nga nanginahanglan oras ug pasensya. Ang pagpangita og mga duplicate nga mga file mahimong sayon kaayo kung ang imong makina gipadagan sa GNU/Linux, salamat sa 'fdupes' utility.
Ang Fdupes usa ka Linux utility nga gisulat ni Adrian Lopez sa C programming Language nga gipagawas ubos sa MIT License. Ang aplikasyon makahimo sa pagpangita sa mga duplicate nga mga file sa gihatag nga set sa mga direktoryo ug mga sub-direktoryo. Ang Fdupes nakaila sa mga duplicate pinaagi sa pagtandi sa MD5 nga pirma sa mga file nga gisundan sa usa ka byte-to-byte nga pagtandi. Daghang mga kapilian ang mahimong ipasa sa Fdupes aron ilista, papason ug pulihan ang mga file nga adunay mga hardlink sa mga duplicate.
Ang pagtandi magsugod sa han-ay:
gidak-on nga pagtandi > Partial nga MD5 Signature Comparison > Full MD5 Signature Comparison > Byte-to-Byte Comparison.
I-install ang fdupes sa usa ka Linux
Ang pag-instalar sa pinakabag-o nga bersyon sa fdupes (fdupes version 1.51) nga sayon sama sa pagpadagan sa pagsunod sa command sa Debian based system sama sa Ubuntu ug Linux Mint.
$ sudo apt-get install fdupes
Sa CentOS/RHEL ug Fedora based system, kinahanglan nimo nga i-on ang epel repository aron ma-install ang fdupes package.
# yum install fdupes # dnf install fdupes [On Fedora 22 onwards]
Mubo nga sulat: Ang default package manager yum gipulihan sa dnf gikan sa Fedora 22 pataas…
Giunsa paggamit ang mando sa fdupes?
1. Alang sa katuyoan sa pagpasundayag, maghimo kita ug pipila ka duplicate nga mga file ubos sa usa ka direktoryo (ingon tecmint) sama sa:
$ 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
Human sa pagpadagan sa ibabaw nga sugo, atong pamatud-an nga ang mga duplicate nga mga file gihimo o wala gamit ang ls command.
$ 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
Ang script sa ibabaw naghimo ug 15 ka mga file nga mao ang tecmint1.txt, tecmint2.txt...tecmint15.txt ug ang matag file adunay parehas nga datos i.e.,
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Karon pangitaa ang mga duplicate nga mga file sulod sa folder 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. Pangitaa ang mga duplicate nga balikbalik sa ilawom sa matag direktoryo lakip ang mga sub-direktoryo niini gamit ang -r nga kapilian.
Gipangita niini ang tanan nga mga file ug folder nga recursively, depende sa gidaghanon sa mga file ug folder nga magdugay aron ma-scan ang mga duplicate. Nianang panahona, ipakita kanimo ang kinatibuk-ang pag-uswag sa terminal, usa ka butang nga sama niini.
$ fdupes -r /home Progress [37780/54747] 69%
4. Tan-awa ang gidak-on sa mga duplicate nga makita sulod sa usa ka folder gamit ang -S nga opsyon.
$ 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. Imong makita ang gidak-on sa mga duplicate nga mga file alang sa matag direktoryo ug mga subdirektoryo nga masugatan sulod sa paggamit sa -S ug -r nga mga opsyon sa samang higayon, sama sa:
$ 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. Gawas sa pagpangita sa usa ka folder o sa tanan nga mga folder nga balikbalik, mahimo nimong pilion ang pagpili sa duha ka mga folder o tulo ka mga folder kung gikinahanglan. Wala pay labot mahimo nimong gamiton ang opsyon -S ug/o -r kung gikinahanglan.
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Aron mapapas ang mga duplicate nga mga file samtang nagpreserbar sa usa ka kopya mahimo nimong gamiton ang opsyon nga '-d'. Ang dugang nga pag-amping kinahanglan nga himuon samtang gigamit kini nga kapilian kung dili nimo mawala ang kinahanglan nga mga file/data ug hunahunaa nga ang proseso dili na mabawi.
$ 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]:
Mahimo nimong mamatikdan nga ang tanan nga mga duplicate gilista ug ikaw giaghat sa pagtangtang, sa usa-usa o sa piho nga range o tanan sa usa ka lakaw. Mahimo nimong pilion ang usa ka range sama sa ubos aron matangtang ang mga file nga file sa piho nga range.
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. Gikan sa safety point of view, mahimo nimong i-print ang output sa 'fdupes' nga i-file ug dayon susihon ang text file aron makadesisyon kung unsa nga file ang papason. Kini nga pagkunhod sa mga kahigayonan sa pagkuha sa imong file nga aksidenteng matangtang. Mahimo nimong buhaton:
$ fdupes -Sr /home > /home/fdupes.txt
Mubo nga sulat: Mahimo nimong ilisan ang '/home' sa imong gusto nga folder. Gamita usab ang opsyon nga '-r' ug '-S' kung gusto nimo pangitaon nga recursively ug Print Size, matag usa.
9. Mahimo nimong laktawan ang unang file gikan sa matag set sa mga posporo pinaagi sa paggamit sa opsyon nga '-f'.
Unang Listahan sa mga file sa direktoryo.
$ 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
ug dayon laktawan ang unang file gikan sa matag set sa mga posporo.
$ 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. Susiha ang na-install nga bersyon sa fdupes.
$ fdupes --version fdupes 1.51
11. Kung kinahanglan nimo ang bisan unsang tabang sa fdupes mahimo nimong gamiton ang switch '-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
Kana alang sa tanan karon. Pahibaloa ko kung giunsa nimo pagpangita ug pagtangtang ang mga duplicate nga file hangtod karon sa Linux? ug isulti usab kanako ang imong opinyon bahin sa kini nga utility. Ibutang ang imong bililhon nga feedback sa seksyon sa komentaryo sa ubos ug ayaw kalimti nga i-like/ipaambit kami ug tabangi kami nga mokaylap.
Nagtrabaho ko sa lain nga utility nga gitawag og fslint para tangtangon ang mga duplicate nga file, ma-post sa dili madugay ug ganahan ka nga magbasa.