fdupes - E Command Line Tool fir Duplikatdateien op Linux ze fannen an ze läschen
Et ass eng allgemeng Fuerderung fir duplizéiert Dateie fir déi meescht Computer Benotzer ze fannen an z'ersetzen. Duplizéiert Dateien ze fannen an ze läschen ass eng ustrengend Aarbecht déi Zäit a Gedold erfuerdert. Duplizéiert Dateien ze fannen ka ganz einfach sinn wann Är Maschinn vum GNU/Linux ugedriwwe gëtt, dank dem 'fdupes' Utility.
Fdupes ass e Linux Utility geschriwwen vum Adrian Lopez an der C Programméiersprooch verëffentlecht ënner MIT Lizenz. D'Applikatioun ass fäeg duplizéiert Dateien an de bestëmmte Set vun Verzeichnisser an Ënnerverzeechnungen ze fannen. Fdupes erkennen Duplikaten andeems Dir MD5 Ënnerschrëft vu Dateien vergläicht, gefollegt vun engem Byte-zu-Byte Verglach. Vill Optioune kënne mat Fdupes weidergeleet ginn fir d'Dateien ze lëschten, ze läschen an ze ersetzen mat Hardlinks op Duplikaten.
De Verglach fänkt an der Reiefolleg un:
Gréisst Verglach> Deelweis MD5 Ënnerschrëft Verglach> Voll MD5 Ënnerschrëft Verglach> Byte-zu-Byte Verglach.
Installéiert fdupes op engem Linux
Installatioun vun der leschter Versioun vu fdupes (fdupes Versioun 1.51) sou einfach wéi de Kommando op Debian baséiert Systemer wéi Ubuntu a Linux Mint ze lafen.
$ sudo apt-get install fdupes
Op CentOS/RHEL a Fedora baséiert Systemer, musst Dir Epel Repository ausschalten fir fdupes Package z'installéieren.
# yum install fdupes # dnf install fdupes [On Fedora 22 onwards]
Notiz: De Standard Package Manager yum gëtt duerch dnf vun Fedora 22 ersat ...
Wéi benotzen ech fdupes Kommando?
1. Fir Demonstratiounszwecker, loosst eis e puer Duplikatdateien ënner engem Verzeechnes erstellen (soen tecmint) einfach wéi:
$ 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
Nodeems Dir uewe Kommando ausgefouert hutt, loosst eis verifizéieren datt d'Duplikatedateien erstallt ginn oder net ls Kommando benotzen.
$ 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
Dat uewe genannte Skript erstellt 15 Dateien nämlech tecmint1.txt, tecmint2.txt ... tecmint15.txt an all Dateien enthalen déiselwecht Donnéeën dh,
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Sich no Duplikatdateien am Dossier 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. Sich no Duplikate rekursiv ënner all Verzeichnis inklusiv seng Ënnerverzeechnunge mat der -r Optioun.
Et sicht rekursiv iwwer all Dateien an Dossier, ofhängeg vun der Unzuel vun de Fichieren an Ordner, et dauert e bëssen Zäit fir Duplikaten ze scannen. An där Tëschenzäit kritt Dir de Gesamt Fortschrëtt am Terminal presentéiert, sou eppes.
$ fdupes -r /home Progress [37780/54747] 69%
4. Gesinn d'Gréisst vun Duplikate bannent engem Dossier fonnt mat der -S Optioun.
$ 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. Dir kënnt d'Gréisst vun Duplikatdateien fir all Verzeechnes an Ënnerverzeechnungen gesinn, déi an der selweschter Zäit vun den -S an -r Optiounen begéint sinn, wéi:
$ 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. Anescht wéi an engem Dossier oder all Ordner rekursiv ze sichen, kënnt Dir wielen an zwee Classeure oder dräi Classeure wéi néideg ze wielen. Net ze ernimmen Dir kënnt Optioun -S an/oder -r benotzen wann néideg.
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Fir déi duplizéiert Dateien ze läschen, während Dir eng Kopie bewahrt, kënnt Dir d'Optioun '-d' benotzen. Extra suergfälteg sollt getraff ginn wann Dir dës Optioun benotzt, soss kënnt Dir um Enn déi néideg Dateien/Donnéeën verléieren a vergiesst datt de Prozess net erhuelbar ass.
$ 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]:
Dir kënnt bemierken datt all Duplikate opgelëscht sinn an Dir sidd opgefuerdert ze läschen, entweder een nom aneren oder bestëmmte Beräich oder alles an engem Go. Dir kënnt e Sortiment auswielen wéi hei ënnen fir Dateie Dateie vu spezifesche Beräich ze läschen.
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. Aus Sécherheetssiicht kënnt Dir gären d'Ausgab vun 'fdupes' op Datei drécken an dann Textdatei kontrolléieren fir ze entscheeden wéi eng Datei ze läschen. Dëst reduzéiert d'Chancen datt Är Datei zoufälleg geläscht gëtt. Dir kënnt maachen:
$ fdupes -Sr /home > /home/fdupes.txt
Bemierkung: Dir kënnt '/home' duerch den gewënschten Dossier ersetzen. Benotzt och d'Optioun '-r' an '-S' wann Dir rekursiv an Dréckgréisst wëllt sichen, respektiv.
9. Dir kënnt déi éischt Datei aus all Set vu Matcher ofleeën andeems Dir d'Optioun '-f' benotzt.
Éischt Lëscht Dateie vum Verzeechnes.
$ 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
an dann déi éischt Datei aus all Set vun Mätscher ewech.
$ 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. Check installéiert Versioun vun fdupes.
$ fdupes --version fdupes 1.51
11. Wann Dir Hëllef braucht op fdupes, kënnt Dir Schalter '-h' benotzen.
$ 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
Dat ass elo fir all. Loosst mech wëssen wéi Dir Duplikatedateien bis elo am Linux fonnt hutt a geläscht hutt? a sot mir och Är Meenung iwwer dëst Utility. Setzt Äre wäertvolle Feedback an der Kommentarsektioun hei drënner a vergiesst net eis ze liken/deelen an eis ze hëllefen ze verbreeden.
Ech schaffen un engem aneren Utility mam Numm fslint fir duplizéiert Dateien ze läschen, wäert geschwënn posten an Dir wäert gär liesen.