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

So finden und löschen Sie doppelte Dateien in Linux

Ich sichere die Konfigurationsdateien oder alle alten Dateien immer irgendwo auf meiner Festplatte, bevor ich sie bearbeite oder ändere, damit ich sie aus der Sicherung wiederherstellen kann, wenn ich versehentlich etwas falsch gemacht habe. Aber das Problem ist, dass ich vergessen habe, diese Dateien zu bereinigen, und dass meine Festplatte nach einer gewissen Zeit mit vielen doppelten Dateien gefüllt ist. Ich bin entweder zu faul, die alten Dateien zu bereinigen, oder habe Angst, dass ich wichtige Dateien löschen könnte. Wenn Sie wie ich sind und mit mehreren Kopien derselben Dateien in verschiedenen Sicherungsverzeichnissen überfordert sind, können Sie doppelte Dateien mit den unten angegebenen Tools in Unix-ähnlichen Betriebssystemen finden und löschen.

Ein Wort der Vorsicht:

Seien Sie vorsichtig beim Löschen doppelter Dateien. Wenn Sie nicht aufpassen, führt dies zu versehentlichem Datenverlust . Ich rate Ihnen, bei der Verwendung dieser Tools besonders aufmerksam zu sein.

Doppelte Dateien in Linux finden und löschen

Für den Zweck dieses Leitfadens werde ich über drei Dienstprogramme sprechen, nämlich

  1. Rdfind,
  2. Dupes,
  3. FSlint.

Diese drei Dienstprogramme sind kostenlos, Open Source und funktionieren auf den meisten Unix-ähnlichen Betriebssystemen.

1. Suche

Rdfind , steht für r überflüssig d ata finden , ist ein kostenloses Open-Source-Dienstprogramm zum Auffinden doppelter Dateien in und/oder innerhalb von Verzeichnissen und Unterverzeichnissen. Es vergleicht Dateien anhand ihres Inhalts, nicht anhand ihres Dateinamens. Rdfind verwendet Ranking Algorithmus zur Klassifizierung von Original- und Duplikatdateien. Wenn Sie zwei oder mehr gleiche Dateien haben, ist Rdfind intelligent genug, um die Originaldatei zu finden und den Rest der Dateien als Duplikate zu betrachten. Sobald die Duplikate gefunden wurden, werden sie Ihnen gemeldet. Sie können sie entweder löschen oder durch feste Links ersetzen odersymbolische (weiche) Links .

Rdfind installieren

Rdfind ist in AUR verfügbar . Sie können es also in Arch-basierten Systemen mit jedem AUR-Hilfsprogramm wie Yay installieren wie unten gezeigt.

$ yay -S rdfind

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install rdfind

Auf Fedora:

$ sudo dnf install rdfind

Auf RHEL, CentOS:

$ sudo yum install epel-release
$ sudo yum install rdfind

Verwendung

Führen Sie nach der Installation einfach den Befehl Rdfind zusammen mit dem Verzeichnispfad aus, um nach doppelten Dateien zu suchen.

$ rdfind ~/Downloads

Scannen Sie ein Verzeichnis mit Rdfind

Wie Sie im obigen Screenshot sehen, scannt der Befehl Rdfind das Verzeichnis ~/Downloads und speichert die Ergebnisse in einer Datei namens results.txt im aktuellen Arbeitsverzeichnis. Sie können den Namen der möglichen doppelten Dateien in der Datei results.txt sehen.

$ cat results.txt 
# Automatically generated
# duptype id depth size device inode priority name
DUPTYPE_FIRST_OCCURRENCE 1469 8 9 2050 15864884 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test5.regex
DUPTYPE_WITHIN_SAME_TREE -1469 8 9 2050 15864886 1 /home/sk/Downloads/tor-browser_en-US/Browser/TorBrowser/Tor/PluggableTransports/fte/tests/dfas/test6.regex
[...]
DUPTYPE_FIRST_OCCURRENCE 13 0 403635 2050 15740257 1 /home/sk/Downloads/Hyperledger(1).pdf
DUPTYPE_WITHIN_SAME_TREE -13 0 403635 2050 15741071 1 /home/sk/Downloads/Hyperledger.pdf
# end of file

Indem Sie die Datei results.txt überprüfen, können Sie die Duplikate leicht finden. Sie können die Duplikate manuell entfernen, wenn Sie möchten.

Außerdem können Sie -dryrun Option, alle Duplikate in einem bestimmten Verzeichnis zu finden, ohne etwas zu ändern, und die Zusammenfassung in Ihrem Terminal auszugeben:

$ rdfind -dryrun true ~/Downloads

Sobald Sie die Duplikate gefunden haben, können Sie sie entweder durch Hardlinks oder Symlinks ersetzen.

Um alle Duplikate durch Hardlinks zu ersetzen, führen Sie Folgendes aus:

$ rdfind -makehardlinks true ~/Downloads

Um alle Duplikate durch Symlinks/Softlinks zu ersetzen, führen Sie Folgendes aus:

$ rdfind -makesymlinks true ~/Downloads

Möglicherweise haben Sie einige leere Dateien in einem Verzeichnis und möchten diese ignorieren. Verwenden Sie in diesem Fall -ignoreempty Option wie unten.

$ rdfind -ignoreempty true ~/Downloads

Wenn Sie die alten Dateien nicht mehr benötigen, löschen Sie einfach doppelte Dateien, anstatt sie durch Hard- oder Softlinks zu ersetzen.

Um alle Duplikate zu löschen, führen Sie einfach Folgendes aus:

$ rdfind -deleteduplicates true ~/Downloads

Wenn Sie leere Dateien nicht ignorieren und zusammen mit allen Duplikaten löschen möchten, führen Sie Folgendes aus:

$ rdfind -deleteduplicates true -ignoreempty false ~/Downloads

Weitere Einzelheiten finden Sie im Hilfebereich:

$ rdfind --help

Und die Manpages:

$ man rdfind

Empfohlene Lektüre:

  • Entfernen Sie doppelte Dateien von Ihrem Android mit dem Fixer für doppelte Dateien

2. Duplikate

Dupes ist ein weiteres Befehlszeilenprogramm zum Identifizieren und Entfernen doppelter Dateien in angegebenen Verzeichnissen und Unterverzeichnissen. Es ist ein kostenloses, in C geschriebenes Open-Source-Dienstprogramm Programmiersprache. Fdupes identifiziert die Duplikate, indem es Dateigrößen, teilweise MD5-Signaturen, vollständige MD5-Signaturen vergleicht und schließlich einen Byte-für-Byte-Vergleich zur Überprüfung durchführt.

Ähnlich wie das Dienstprogramm Rdfind bietet Fdupes eine Reihe von Optionen zum Ausführen von Operationen, wie zum Beispiel:

  • Suche rekursiv nach doppelten Dateien in Verzeichnissen und Unterverzeichnissen
  • Leere Dateien und versteckte Dateien von der Berücksichtigung ausschließen
  • Größe der Duplikate anzeigen
  • Duplikate sofort löschen, wenn sie auftreten
  • Dateien mit unterschiedlichen Besitzer-/Gruppen- oder Berechtigungsbits als Duplikate ausschließen
  • Und vieles mehr.

Fdupes installieren

Fdupes ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar.

Unter Arch Linux und seinen Varianten wie Antergos, Manjaro Linux installieren Sie es mit Pacman wie unten.

$ sudo pacman -S fdupes

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install fdupes

Auf Fedora:

$ sudo dnf install fdupes

Auf RHEL, CentOS:

$ sudo yum install epel-release
$ sudo yum install fdupes

Verwendung

Die Verwendung von Fdupes ist ziemlich einfach. Führen Sie einfach den folgenden Befehl aus, um doppelte Dateien in einem Verzeichnis zu finden, zum Beispiel ~/Downloads .

$ fdupes ~/Downloads

Beispielausgabe von meinem System:

/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

Wie Sie sehen können, habe ich eine doppelte Datei in /home/sk/Downloads/ Verzeichnis. Es zeigt nur die Duplikate aus dem übergeordneten Verzeichnis. Wie kann man die Duplikate aus Unterverzeichnissen anzeigen? Verwenden Sie einfach -r Option wie unten.

$ fdupes -r ~/Downloads

Jetzt sehen Sie die Duplikate von /home/sk/Downloads/ Verzeichnis und seine Unterverzeichnisse ebenfalls.

Fdupes kann auch in der Lage sein, Duplikate aus mehreren Verzeichnissen gleichzeitig zu finden.

$ fdupes ~/Downloads ~/Documents/ostechnix

Sie können sogar mehrere Verzeichnisse durchsuchen, eines rekursiv wie unten:

$ fdupes ~/Downloads -r ~/Documents/ostechnix

Die obigen Befehle suchen nach Duplikaten im Verzeichnis "~/Downloads" und im Verzeichnis "~/Documents/ostechnix" und seinen Unterverzeichnissen.

Manchmal möchten Sie vielleicht die Größe der Duplikate in einem Verzeichnis wissen. Verwenden Sie in diesem Fall -S Option wie unten.

$ fdupes -S ~/Downloads
403635 bytes each: 
/home/sk/Downloads/Hyperledger.pdf
/home/sk/Downloads/Hyperledger(1).pdf

Um die Größe der Duplikate in übergeordneten und untergeordneten Verzeichnissen anzuzeigen, verwenden Sie auf ähnliche Weise -Sr Option.

Leere und versteckte Dateien können wir mit -n von der Betrachtung ausschließen und -A bzw..

$ fdupes -n ~/Downloads
$ fdupes -A ~/Downloads

Der erste Befehl schließt Dateien der Länge Null von der Berücksichtigung aus und der zweite schließt versteckte Dateien von der Berücksichtigung aus, während im angegebenen Verzeichnis nach Duplikaten gesucht wird.

Um Informationen zu doppelten Dateien zusammenzufassen, verwenden Sie -m Option.

$ fdupes -m ~/Downloads
1 duplicate files (in 1 sets), occupying 403.6 kilobytes

Um alle Duplikate zu löschen, verwenden Sie -d Option.

$ fdupes -d ~/Downloads

Beispielausgabe:

[1] /home/sk/Downloads/Hyperledger Fabric Installation.pdf
[2] /home/sk/Downloads/Hyperledger Fabric Installation(1).pdf

Set 1 of 1, preserve files [1 - 2, all]:

Dieser Befehl fordert Sie auf, Dateien zu erhalten und alle anderen Duplikate zu löschen. Geben Sie einfach eine beliebige Zahl ein, um die entsprechende Datei zu erhalten, und löschen Sie die verbleibenden Dateien. Seien Sie bei der Verwendung dieser Option aufmerksamer. Sie könnten Originaldateien löschen, wenn Sie nicht aufpassen.

Wenn Sie die erste Datei in jedem Satz von Duplikaten beibehalten und die anderen löschen möchten, ohne jedes Mal nachzufragen, verwenden Sie -dN Option (nicht empfohlen).

$ fdupes -dN ~/Downloads

Um Duplikate sofort zu löschen, verwenden Sie -I Flagge.

$ fdupes -I ~/Downloads

Weitere Einzelheiten zu Fdupes finden Sie im Hilfebereich und auf den Manpages.

$ fdupes --help
$ man fdupes

Lesen Sie auch:

  • Duplicate Photos Fixer:Organisieren Sie Ihre Fotobibliothek gut

3. FSlint

FSlint ist ein weiteres Dienstprogramm zum Auffinden doppelter Dateien, das ich von Zeit zu Zeit verwende, um unnötige doppelte Dateien loszuwerden und Speicherplatz in meinem Linux-System freizugeben. Anders als die beiden anderen Dienstprogramme hat FSlint sowohl GUI- als auch CLI-Modi. Es ist also ein benutzerfreundlicheres Tool für Neulinge. FSlint findet nicht nur Duplikate, sondern auch fehlerhafte Symlinks, fehlerhafte Namen, temporäre Dateien, fehlerhafte IDS, leere Verzeichnisse und nicht entfernte Binärdateien usw.

FSlint installieren

FSlint ist in AUR verfügbar , sodass Sie es mit beliebigen AUR-Helfern installieren können.

$ yay -S fslint

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install fslint

Auf Fedora:

$ sudo dnf install fslint

Auf RHEL, CentOS:

$ sudo yum install epel-release
$ sudo yum install fslint

Sobald es installiert ist, starten Sie es über das Menü oder den Anwendungsstarter.

So sieht die FSlint-GUI aus.

FSlint-Schnittstelle

Wie Sie sehen können, ist die Oberfläche von FSlint benutzerfreundlich und selbsterklärend. Im Suchpfad , fügen Sie den Pfad des Verzeichnisses hinzu, das Sie scannen möchten, und klicken Sie auf Suchen Schaltfläche in der unteren linken Ecke, um die Duplikate zu finden. Aktivieren Sie die Rekursionsoption, um rekursiv nach Duplikaten in Verzeichnissen und Unterverzeichnissen zu suchen. Der FSlint scannt schnell das angegebene Verzeichnis und listet sie auf.

fslint-GUI

Wählen Sie aus der Liste die Duplikate aus, die Sie bereinigen möchten, und wählen Sie eine davon mit Aktionen wie Speichern, Löschen, Zusammenführen und Symlink aus.

In den Erweiterten Suchparametern können Sie die Pfade angeben, die bei der Suche nach Duplikaten ausgeschlossen werden sollen.

erweiterte fslint-Suche

FSlint-Befehlszeilenoptionen

FSlint stellt eine Sammlung der folgenden CLI-Dienstprogramme bereit, um Duplikate in Ihrem Dateisystem zu finden:

  • finden -- DUPlicate-Dateien finden
  • findnl -- find Name Lint (Probleme mit Dateinamen)
  • findu8 -- Dateinamen mit ungültiger utf8-Kodierung finden
  • findbl -- Bad Links finden (verschiedene Probleme mit symbolischen Links)
  • findet -- Find Same Name (Probleme mit Namenskonflikten)
  • gefunden -- Leere Verzeichnisse finden
  • findid -- findet Dateien mit toten Benutzer-IDs
  • findns -- nicht entfernte ausführbare Dateien finden
  • findrs -- überflüssige Leerzeichen in Dateien finden
  • findtf -- Temporäre Dateien finden
  • findul -- möglicherweise unbenutzte Bibliotheken finden
  • zipdir -- Gewinnen Sie verschwendeten Speicherplatz in ext2-Verzeichniseinträgen zurück

Alle diese Dienstprogramme sind unter /usr/share/fslint/fslint/fslint verfügbar Ort.

Um beispielsweise Duplikate in einem bestimmten Verzeichnis zu finden, tun Sie Folgendes:

$ /usr/share/fslint/fslint/findup ~/Downloads/

Um leere Verzeichnisse zu finden, wäre der Befehl ähnlich:

$ /usr/share/fslint/fslint/finded ~/Downloads/

Um weitere Details zu jedem Dienstprogramm zu erhalten, zum Beispiel findup , ausführen:

$ /usr/share/fslint/fslint/findup --help

Weitere Einzelheiten zu FSlint finden Sie im Hilfebereich und auf den Manpages.

$ /usr/share/fslint/fslint/fslint --help
$ man fslint

Schlussfolgerung

Sie kennen jetzt drei Tools, um unerwünschte doppelte Dateien in Linux zu finden und zu löschen. Von diesen drei Tools verwende ich oft Rdfind. Das bedeutet nicht, dass die anderen beiden Dienstprogramme nicht effizient sind, aber ich bin mit Rdfind bisher einfach zufrieden. Nun, du bist an der Reihe. Welches ist dein Lieblingstool und warum? Teilen Sie uns diese im Kommentarbereich unten mit.


Linux
  1. So finden und entfernen Sie doppelte Fotos in Linux

  2. So finden Sie doppelte Dateien in Linux

  3. Linux Dateien und Verzeichnisse löschen

  4. So finden und löschen Sie leere Verzeichnisse und Dateien in Linux

  5. Wie chmod und chown versteckte Dateien in Linux?

So finden und löschen Sie defekte Symlinks 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 und löschen Sie leere Verzeichnisse in Linux

So finden Sie doppelte Dateien in Linux und entfernen sie

So löschen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile