Terminalbefehl zum Verschieben einer Reihe von Dateien mit Klammern in einen anderen Ordner oder Papierkorb

Letzte Nacht habe ich eine Musiksammlung an einem Ort konsolidiert und jeder Song ist durch einen Artist-Ordner und den Track getrennt. Das Problem ist, dass es in diesen Ordnern eine große Anzahl von Duplikaten gibt. Es gibt über 3.000 Künstlerordner und in jedem Künstlerordner gibt es ein paar Duplikate, daher möchte ich nicht schätzen, wie viele Duplikate es insgesamt gibt.

Die Software, die ich verwendet habe, um die Musik zu konsolidieren, hat jeden doppelten Titel genommen und die nachfolgende Datei in (1).mp3 umbenannt, oder, wenn sie mehr als ein Duplikat hat, wurde sie in (2).mp3, (3).mp3 umbenannt und so weiter, bis die letzte Anzahl von gefundenen Duplikaten für diesen bestimmten Titel umbenannt wird.

Also dachte ich, der beste Weg, diese zu löschen, wäre eine einfache "(1).mp3"-Suche im Rampenlicht, aber aus irgendeinem Grund gibt es mir nicht die richtigen Ergebnisse, egal was ich versuche. (Ich habe irgendwo gelesen, dass es etwas damit zu tun hat, wie Linux/Mac OS eingerichtet ist). Also habe ich mich dann mit Terminal beschäftigt, um das Verzeichnis mit dem entsprechenden Befehl zu durchsuchen. Aber auch das scheint nicht zu funktionieren. Der Pfad des Verzeichnisses lautet:

/Volumes/AUDIO\ DRIVE/Music\ Database

Also habe ich den Befehl verwendet ...

find /Volumes/AUDIO\ DRIVE/Music\ Database “(1).mp3"

…was Ergebnisse zurückgibt, aber nicht so, wie ich es erwartet hatte, dh es gibt viele Dateien zurück, von denen nur einige die (1).mp3 am Ende haben. Die meisten von ihnen haben das nicht und sind nur normale Tracks mit .mp3 am Ende. zB The Beatles - Ticket to Ride.mp3

Also habe ich nach einem Befehl gesucht, mit dem ich nach diesen Dateien suchen und die Ergebnisse an einen anderen Ort verschieben kann. Also habe ich einen Ordner namens "Moved Files" erstellt, der ein Verzeichnis enthält von:

/Volumes/AUDIO\ DRIVE/Moved\ Files

Also habe ich den folgenden Befehl verwendet, den ich online gefunden habe ...

find /Volumes/AUDIO\ DRIVE/Music\ Database “(1).mp3" -exec mv {} ~/Volumes/AUDIO\ DRIVE/Moved\ Files \;

… was eines von zwei Dingen ausführt, je nachdem, in welchem ​​​​Humor Terminal sich befindet. Entweder verschiebt es die falschen Dateien in das angegebene Verzeichnis (vielleicht aufgrund der ungenauen Suchergebnisse, die ich am Anfang hatte) oder es gibt mir den folgenden Fehler:

-bash: Syntaxfehler nahe unerwartetem Token `)'

Wenn jemand da draußen mir helfen kann, würde ich es wirklich schätzen. Es ist wirklich frustrierend zu wissen, dass ich bei einem Windows-Computer nur *(1).mp3 in die Suchleiste eingeben und alle Ergebnisse blockieren müsste, aber ich kann das ehrlich gesagt nicht umgehen Mac. Und "NEIN", ich kann keine Windows-Maschine verwenden, da es sich um ein Apple G Drive handelt, auf dem alle Audiodateien gespeichert sind.

Antworten (3)

Verwenden Sie einfach Spotlight im Finder, um nach Dateien mit *(1).mp3 usw. zu suchen. Beginnen Sie eine neue Spotlight-Suche, fügen Sie eine Rohabfrageregel hinzu und verwenden Sie Folgendes, wählen Sie dann alle aus und löschen Sie.

kMDItemDisplayName=='*(1).mp3'
Vielen Dank für Ihre Antwort, aber das scheint nicht zu funktionieren, es werden nur vier Ergebnisse zurückgegeben. Ich dachte, es könnte damit zu tun haben, dass das Laufwerk extern ist, mit dem ich die Rohabfrage erstellt habe, also habe ich die Musikdatenbank lokal verschoben und die Dateien neu indiziert, aber ohne Erfolg. Irgendwelche anderen Ideen?

finderwartet ein Muster, nicht nur einen Namen, damit Sie möglicherweise bessere Ergebnisse erzielen

find /Volumes/AUDIO\ DRIVE/Music\ Database -name '*(1).mp3' -print

Scheint, dass der Fehler in Ihrem Terminalbefehl auf ein schlechtes Ausschneiden und Einfügen zurückzuführen ist. Ersetzen Sie das erste „ durch „ , sodass der letzte Befehl der folgende ist:

find /Volumes/AUDIO\ DRIVE/Music\ Database -name "*(1).mp3" -exec mv {} ~/Volumes/AUDIO\ DRIVE/Moved\ Files \;

Wenn Sie mit dem Terminal vertraut sind, schlage ich vor, fdupes oder den Fork fdupes-jody zu installieren und dann:

fdupes -r dir1 dir2 | grep dir1/ | xargs rm 

um Duplikate in dir1 zu entfernen .

Hoffe das hilft.

Das passt nur zu (1).mp3 und nicht zu track_name(1).mp3 - ein * wird benötigt und ein -name gemäß apple.stackexchange.com/a/152467/237
Entschuldigung, das Sternchen ist beim Ausschneiden und Einfügen verloren gegangen.