Ich habe einen Ordner namens img
, dieser Ordner hat viele Ebenen von Unterordnern, die alle Bilder enthalten. Ich werde sie in einen Image-Server importieren.
Normalerweise können Bilder (oder beliebige Dateien) denselben Namen haben, solange sie sich in einem anderen Verzeichnispfad befinden oder eine andere Erweiterung haben. Für den Image-Server, in den ich sie importiere, müssen jedoch alle Image-Namen eindeutig sein (auch wenn die Erweiterungen unterschiedlich sind).
Zum Beispiel die Bilder background.png
und background.gif
wären nicht erlaubt, weil sie, obwohl sie unterschiedliche Erweiterungen haben, immer noch den gleichen Dateinamen haben. Auch wenn sie sich in separaten Unterordnern befinden, müssen sie eindeutig sein.
Daher frage ich mich, ob ich eine rekursive Suche im img
Ordner durchführen kann, um eine Liste von Dateien mit demselben Namen (ohne Erweiterung) zu finden.
Gibt es einen Befehl, der das kann?
quelle
Antworten:
FSlint ist ein vielseitiger Dublettenfinder, der eine Funktion zum Suchen von Dublettennamen enthält:
Das FSlint-Paket für Ubuntu hebt die grafische Oberfläche hervor, aber wie in den FSlint-FAQ erläutert, ist eine Befehlszeilenschnittstelle über die Programme in verfügbar
/usr/share/fslint/fslint/
. Nutzen Sie die--help
Option zur Dokumentation, zB:Anwendungsbeispiel:
quelle
ls -l
seine Ausgabe formatieren. Diese Frage sollte erklären, was die Farben bedeuten.Wie der Kommentar besagt, werden hier auch Ordner gefunden. Hier ist der Befehl, um es auf Dateien zu beschränken:
quelle
uniq
sie keine Funktion zur Auswahl eines anderen Feldtrennzeichens bieten.sed
veraltet? Arkan? Sicher. Obsolet? Nicht dass ich wüsste. (Und ich habe gerade gesucht, um zu überprüfen.)Speichern Sie dies in einer Datei mit dem Namen
duplicates.py
Dann machen Sie die Datei ausführbar:
Laufen Sie zB so ein:
Es sollten Dateipaare ausgegeben werden, die denselben Basisnamen haben (1). In Python geschrieben, sollten Sie es ändern können.
quelle
P001.ORF
undP001 (1).ORF
als Duplikate und scheint auch zu denken, dass 60% meiner Dateien Duplikate sind, was falsch ist, da bin ich mir ziemlich sicher.fslint
Es wurde eine realistische Anzahl doppelter Dateinamen gefunden, die nahe bei 3% liegt.Ich gehe davon aus, dass Sie nur diese "Duplikate" sehen und sie dann manuell bearbeiten müssen. Wenn ja, sollte dieser Bash4-Code tun, was Sie wollen, denke ich.
Weitere Informationen zur assoziativen Array-Syntax finden Sie unter http://mywiki.wooledge.org/BashGuide/Arrays#Associative_Arrays und / oder im Bash-Handbuch.
quelle
Das ist bname:
Mach es ausführbar:
Rufe es auf:
Profi:
Con:
quelle
Verbesserung von Loevborgs Skript für meine Bedürfnisse (beinhaltet gruppierte Ausgabe, Blacklist, sauberere Ausgabe beim Scannen). Ich habe ein 10-TB-Laufwerk gescannt und brauchte eine etwas sauberere Ausgabe.
Verwendung:
python duplicates.py DIRNAME
duplicates.py
quelle