Wenn Du damit leben könntest, dass die Dateien in 76465.pdf (anstatt 76465(1).pdf) und 76465(2).pdf umbenannt werden, dann könnte ich folgendes auf die Schnelle anbieten:
Code: Alles auswählen
find . -type f -exec rename 's#/([^/]*)/[^/]*pdf$#/$1/$1.pdf#' {} + -exec rename 's#/([^/]*)/[^/]*pdf$#/$1/$1(2).pdf#' {} +
Ist allerdings mit dem obligatorischen -n von rename im Vorfeld nicht sinnvoll zu testen, da dann die Dateien ja eben noch nicht umbenannt sind!? Am besten führst Du das also erstmal im Stammverzeichnis einer Kopie deiner Daten aus, um zu schauen, ob das Ergebnis dir gefällt.
Idee: Finde alle *pdf-Dateien in einem Verzeichnis und dessen Unterverzeichnissen und bilde eine Liste davon. Gehe die Liste durch und benenne alle Dateien entsprechend um. Bei einer 2. Datei in einem Verzeichnis scheitert er, da keine Dateien im Verzeichnis gleich benannt sein dürfen. Danach nehme nochmal dieselbe Liste und benenne nochmal (Datei(2).pdf) um. Da die meisten Dateien aber bereits umbenannt sind, werden diese in der Liste nicht mehr gefunden und damit nur noch die bisher noch nicht umbenannten Dateien bearbeitet. Könnte man theoretisch noch durch weitere "-exec ...(3/4/5...)pdf..+"-Zweige ergänzen, falls mehr als 2 Dateien in den Verzeichnissen liegen. Daran erkennt man auch, dass das ganze ziemlich unflexibel ist. Sollte aber tun...
PS:
Mit variabler Dateiendung:
Code: Alles auswählen
find . -type f -exec rename 's#/([^/]+)/[^/]+\.([^/]+)$#/$1/$1.$2#' {} + -exec rename 's#/([^/]+)/[^/]+\.([^/]+)$#/$1/$1(2).$2#' {} +