GNU/Linux >> LINUX-Kenntnisse >  >> Linux

fdupes – Ein Befehlszeilentool zum Suchen und Löschen doppelter Dateien in Linux

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.


Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. 5 Befehlszeilen-Tools zum schnellen Auffinden von Dateien unter Linux

  3. Wie finde ich doppelte Dateien in Linux? Hilfe ist hier mit dem fdupes-Befehl!

  4. So finden Sie Dateien mit dem fd-Befehl in Linux

  5. Wie kopiert man Dateien unter Linux und Unix? 10 cp Befehlsbeispiele

So entfernen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile

So finden und löschen Sie doppelte Dateien in Linux

Die 3 besten Tools zum Suchen und Löschen doppelter Dateien in Linux

So finden und löschen Sie doppelte Dateien in Ubuntu mit Fdupes

So finden Sie doppelte Dateien in Linux und entfernen sie

Die größten Dateien und Ordner in der Linux-Befehlszeile finden