fdupes - käsurea tööriist dubleerivate failide leidmiseks ja kustutamiseks Linuxis


Enamiku arvutikasutajate jaoks on levinud nõue leida ja asendada duplikaatfailid. Duplikaatfailide leidmine ja eemaldamine on väsitav töö, mis nõuab aega ja kannatlikkust. Duplikaatfailide leidmine võib olla väga lihtne, kui teie masinat kasutab GNU/Linux, tänu 'fdupes' utiliidile.

Fdupes on Linuxi utiliit, mille on kirjutanud Adrian Lopez C-programmeerimiskeeles ja mis on välja antud MIT-litsentsi all. Rakendus suudab leida duplikaatfaile antud kataloogide ja alamkataloogide komplektist. Fdupes tunneb duplikaate ära, võrreldes failide MD5 allkirja, millele järgneb bait-bait võrdlus. Fdupesiga on võimalik edastada palju võimalusi failide loetlemiseks, kustutamiseks ja asendamiseks duplikaatidena viivate kõvakettalinkidega.

Võrdlus algab järjekorras:

suuruste võrdlus> Osaline MD5 allkirja võrdlus> Täielik MD5 allkirja võrdlus> Baitidest baitidesse võrdlus.

Installige fdupes Linuxile

Fdupes uusima versiooni (fdupes versioon 1.51) installimine on sama lihtne kui järgmise käsu käivitamine Debiani põhistes süsteemides, nagu Ubuntu ja Linux Mint.

$ sudo apt-get install fdupes

CentOS/RHEL ja Fedora põhistes süsteemides peate fdupes-paketi installimiseks sisse lülitama epeli hoidla.

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

Märkus: Vaikimisi paketihaldur yum asendatakse Fedora 22-st alates dnf-ga ...

Kuidas kasutada käsku fdupes?

1. Loome demonstratsiooni eesmärgil kataloogi (näiteks tecmint) alla mõned duplikaadid:

$ 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

Pärast käsu ülalt käivitamist kontrollime, kas duplikaadifailid on loodud või mitte käsuga 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

Ülaltoodud skript loob 15 faili, nimelt tecmint1.txt, tecmint2.txt… tecmint15.txt ja kõik failid sisaldavad samu andmeid, st

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

2. Nüüd otsige topeltfaile kaustast 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. Otsige duplikaate rekursiivselt igas kataloogis, sealhulgas selle alamkataloogides, kasutades valikut -r.

See otsib kõiki faile ja kaustu rekursiivselt, sõltuvalt failide ja kaustade arvust, duplikaatide skannimine võtab aega. Sel ajal esitatakse teile terminali kogu edenemine, midagi sellist.

$ fdupes -r /home

Progress [37780/54747] 69%

4. Vaadake kaustast leitud duplikaatide suurust, kasutades suvandit -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. Valikute -S ja -r abil saate korraga kuvada iga kataloogi ja alamkataloogide duplikaatfailide suuruse järgmiselt:

$ 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. Peale ühe kausta või kõigi kaustade rekursiivse otsimise võite soovi korral valida kas kahe või kolme kausta. Rääkimata sellest, võite vajadusel kasutada valikut -S ja/või -r.

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

7. Kopeerivate failide kustutamiseks koopiat säilitades võite kasutada valikut ‘-d’. Selle valiku kasutamisel tuleb olla eriti ettevaatlik, vastasel juhul võite kaotada vajalikud failid/andmed ja mõelda, et see protsess on taastamatu.

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

Võite märgata, et kõik duplikaadid on loetletud ja teil palutakse kustutada kas ükshaaval või teatud vahemikus või kõik ühe korraga. Konkreetse vahemikuga failide failide kustutamiseks võite valida vahemiku, nagu allpool.

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. Ohutuse seisukohast võiksite printida faili „fdupes” väljundi ja seejärel kontrollida tekstifaili, et otsustada, millise faili kustutada. See vähendab võimalusi faili kogemata kustutada. Võite teha järgmist:

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

Märkus. „/ Home” võite asendada soovitud kaustaga. Kasutage ka valikuid „-r” ja „-S”, kui soovite otsida vastavalt rekursiivselt ja „Print Size”.

9. Võite vaste ‘-f’ abil igast vastete komplektist esimese faili välja jätta.

Esimese loendi kataloogi failid.

$ 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

ja siis jätke esimene vaste igast vastete komplektist välja.

$ 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. Kontrollige fdupes'i installitud versiooni.

$ fdupes --version

fdupes 1.51

11. Kui vajate abi fdupes'ist, võite kasutada lülitit '-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

See on nüüd kõigi jaoks. Andke mulle teada, kuidas te Linuxis duplikaatfaile leidsite ja kustutasite? ja ütle mulle ka oma arvamus selle utiliidi kohta. Pange oma väärtuslik tagasiside allolevasse kommentaaride jaotisesse ja ärge unustage meid meeldida/jagada ja aidata meil levida.

Töötan duplikaadifailide eemaldamiseks veel ühe utiliidi nimega fslint, postitan varsti ja teile, inimestele meeldib lugeda.