Für die meisten Computerbenutzer ist es eine allgemeine Anforderung, doppelte Dateien zu finden und zu ersetzen. Das Suchen und Entfernen doppelter Dateien ist eine mühsame Aufgabe, die Zeit und Geduld erfordert. Dank ‘fdupes kann es sehr einfach sein, doppelte Dateien zu finden, wenn Ihr Computer mit GNU/Linux betrieben wird ‘ Dienstprogramm.
Was ist fdupes?
Dupes ist ein Linux-Dienstprogramm, das von Adrian Lopez geschrieben wurde in C Programmiersprache veröffentlicht unter MIT-Lizenz. Die Anwendung kann doppelte Dateien in den angegebenen Verzeichnissen und Unterverzeichnissen finden. Fdupes erkennen Duplikate, indem sie die MD5-Signatur von Dateien vergleichen, gefolgt von einem Byte-zu-Byte-Vergleich. Mit Fdupes können viele Optionen übergeben werden, um die Dateien aufzulisten, zu löschen und durch Hardlinks zu Duplikaten zu ersetzen.
Der Vergleich beginnt in der Reihenfolge:
Größenvergleich> Teilweiser MD5-Signaturvergleich> Vollständiger MD5-Signaturvergleich> Byte-zu-Byte-Vergleich .
fdupes auf einem Linux installieren
Installation der neuesten Version von fdupes (fdupes Version 1.51) so einfach wie das Ausführen des folgenden Befehls auf Debian basierte Systeme wie Ubuntu und Linux Mint .
$ sudo apt-get install fdupes
Auf CentOS /RHEL und Fedora basierten Systemen müssen Sie das Epel-Repository aktivieren, um das fdupes-Paket zu installieren.
# yum install fdupes # dnf install fdupes [On Fedora 22 onwards]
Hinweis :Der standardmäßige Paketmanager yum wird durch dnf ersetzt von Fedora 22 weiter…
Wie verwende ich den Befehl fdupes?
1. Lassen Sie uns zu Demonstrationszwecken ein paar doppelte Dateien in einem Verzeichnis erstellen (z. B. tecmint ) einfach als:
$ 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
Nachdem Sie den obigen Befehl ausgeführt haben, überprüfen Sie, ob die doppelten Dateien erstellt wurden oder nicht, indem Sie den Befehl ls verwenden.
$ 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
Das obige Skript erstellt 15 Dateien nämlich tecmint1.txt, tecmint2.txt…tecmint15.txt und alle Dateien enthalten die gleichen Daten, d.h.
"I Love Tecmint. Tecmint is a very nice community of Linux Users."
2. Suchen Sie nun im Ordner tecmint nach doppelten Dateien .
$ 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. Suchen Sie rekursiv nach Duplikaten in jedem Verzeichnis, einschließlich seiner Unterverzeichnisse, indem Sie das -r verwenden Option.
Es durchsucht alle Dateien und Ordner rekursiv, je nach Anzahl der Dateien und Ordner dauert es einige Zeit, um Duplikate zu scannen. In der Zwischenzeit wird Ihnen der Gesamtfortschritt im Terminal angezeigt, etwa so.
$ fdupes -r /home Progress [37780/54747] 69%
4. Zeigen Sie die Größe der in einem Ordner gefundenen Duplikate mit -S an Option.
$ 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. Mit -S können Sie die Größe der doppelten Dateien für jedes Verzeichnis und Unterverzeichnisse sehen, auf die Sie stoßen und -r Optionen gleichzeitig als:
$ 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. Neben der rekursiven Suche in einem oder allen Ordnern können Sie je nach Bedarf zwischen zwei oder drei Ordnern wählen. Ganz zu schweigen davon, dass Sie die Option -S verwenden können und/oder -r falls erforderlich.
$ fdupes /home/avi/Desktop/ /home/avi/Templates/
7. Um die doppelten Dateien zu löschen und gleichzeitig eine Kopie zu erhalten, können Sie die Option ‘-d’ verwenden . Seien Sie besonders vorsichtig, wenn Sie diese Option verwenden, sonst könnten Sie am Ende notwendige Dateien/Daten verlieren und beachten Sie, dass der Vorgang nicht wiederherstellbar ist.
$ 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]:
Möglicherweise stellen Sie fest, dass alle Duplikate aufgelistet sind und Sie aufgefordert werden, entweder eines nach dem anderen oder einen bestimmten Bereich oder alle auf einmal zu löschen. Sie können einen Bereich wie unten auswählen, um Dateien aus einem bestimmten Bereich zu 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 Sicherheitsgründen möchten Sie vielleicht die Ausgabe von ‘fdupes’ ausdrucken in eine Datei und überprüfen Sie dann die Textdatei, um zu entscheiden, welche Datei gelöscht werden soll. Dies verringert die Wahrscheinlichkeit, dass Ihre Datei versehentlich gelöscht wird. Sie können Folgendes tun:
$ fdupes -Sr /home > /home/fdupes.txt
Hinweis :Sie können ‘/home’ ersetzen mit dem gewünschten Ordner. Verwenden Sie auch die Option ‘-r’ und ‘-S’ wenn Sie rekursiv suchen möchten bzw. Druckgröße.
9. Sie können die erste Datei aus jedem Satz von Übereinstimmungen weglassen, indem Sie die Option ‘-f’ verwenden .
Erste Liste der Dateien des Verzeichnisses.
$ 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
und lassen Sie dann die erste Datei aus jedem Satz von Übereinstimmungen weg.
$ 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. Überprüfen Sie die installierte Version von fdupes.
$ fdupes --version fdupes 1.51
11. Wenn Sie Hilfe zu fdupes benötigen, können Sie den Schalter ‘-h’ verwenden .
$ 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
Das ist jetzt für alle. Lassen Sie mich wissen, wie Sie bisher doppelte Dateien in Linux gefunden und gelöscht haben. und sagen Sie mir auch Ihre Meinung zu diesem Dienstprogramm. Geben Sie Ihr wertvolles Feedback in den Kommentarbereich unten ein und vergessen Sie nicht, uns zu liken/zu teilen und uns zu helfen, uns zu verbreiten.
Ich arbeite an einem anderen Dienstprogramm namens fslint, um doppelte Dateien zu entfernen, werde es bald veröffentlichen und Sie werden es lieben zu lesen.