Ich verstehe, wie fdupes funktioniert, um doppelte Dateien zu finden und anzuzeigen, wenn zwei Verzeichnisse verglichen werden. Was ich gerne wissen würde, ist, wie man das Gegenteil macht, also allenichtpassende Dateien in der Ausgabe. Kann fdupes das oder gibt es ein anderes Programm, das das besser kann? (P.S.: Ich brauche die Vergleiche auf die gleiche Weise wie bei fdupes, entweder mit MD5-Summen oder mit bitweisem Vergleich zwischen Dateien.)
Antwort1
Ich habe darüber nachgedacht, diese Option hinzuzufügen zurmlintschon seit einiger Zeit (aber niemand hatte bisher danach gefragt). Ich habe einen Testzweig erstellt, der jetzt diese Option hat (https://github.com/SeeSpotRun/rmlint/tree/feature/uniques).
Wenn Sie es ausprobieren möchten, müssen Sie die Installation wie folgt durchführen:
- Installieren Sie Abhängigkeiten, falls Sie sie noch nicht haben:
$ sudo apt-get install git scons python3-sphinx python3-nose gettext build-essential
$ sudo apt-get install libelf-dev libglib2.0-dev libblkid-dev libjson-glib-1.0 libjson-glib-dev
- Holen Sie sich den Quelltext des Testzweigs:
$ cd ~
$ git clone -b feature/uniques https://github.com/SeeSpotRun/rmlint.git
$ cd rmlint/
- Kompilieren und (optional) installieren:
$ scons config
$ scons DEBUG=1 -j4
$ sudo scons DEBUG=1 -j4 --prefix=/usr install
$ # (if you skip the install step then replace 'rmlint' with './rmlint' below)
- Suche nach eindeutigen Dateien (löscht nichts):
$ # this will display unique files on your screen:
$ rmlint -o uniques path/to/your/files
$ # or use either of the following to write a list of unique files to unique.txt:
$ rmlint -o uniques:unique.txt path/to/your/files
$ rmlint -o uniques path/to/your/files > unique.txt
Wenn Sie eine Liste der Dateien in dir2
diesemnichteinen Zwilling haben in dir1
dir kannstEtikettVerwenden Sie „dir2“ //
als Trennzeichen und fügen Sie dem Befehl
-k
(oder ) hinzu:--keep-all-tagged
$ rmlint -k -o uniques dir1 // dir2
(Beachten Sie, dass wenn sich zwei identische Dateien in Verzeichnis 2 befinden, von denen aber keine Kopie in Verzeichnis 1 vorhanden ist, sie im letzten Beispiel trotzdem als „eindeutig“ aufgeführt werden.)
- Lassen Sie uns wissen, wie es gelaufen ist. Bei Problemen oder Vorschlägen antworten Sie entweder hier oder auf unsererProbleme-Protokoll
Beachten Sie, dass in den obigen Beispielen, wenn Sie zwei Dateien mit unterschiedlichen Namen aber dem gleichen Inhalt haben, diesenichtals einzigartig gekennzeichnet werden. Wenn SieTunWenn Sie möchten, dass sie als eindeutig gekennzeichnet werden, fügen Sie -b
oder --match-basename
zur Befehlszeile hinzu.
Bezüglich MD5-Summen usw.: rmlint verwendetSHA-1standardmäßig, was etwa 4 Milliarden Mal stärker ist als md5. Sie können dies aufrüsten aufSHA-512indem Sie -p
zur Befehlszeile hinzufügen, oder Sie können stattdessen einen Byte-für-Byte-Vergleich durchführen, indem Sie hinzufügen -pp
(obwohl dies etwas mehr RAM verbraucht).