Die man-page von rename sagt:
If no filenames are given on the command line, filenames will be read via standard input.
1. Mit dem Kommando:
find -iname \*.* | rename -v "s/&/und/g" * && find -iname ....
hast du aber mit '*' eben wieder einen filename übergeben. Ergo ist dem remove deine Pipe von find egal ->
leider bringt das nicht den gewünschten Erfolg…
-> man-pages lesen, die von rename ist überschaubar
2. Wozu verknüpfst du alle Kommandos mit '&&'? Dir ist klar, daß die ganze Kette abbricht, wenn ein Glied keinen Erfolg meldet?
3. RegEx's kann man in einem String zusammenpacken. Erspart wiederholte Aufrufe und unerwartete Abbrüche wegen &&-Bedingungen.
4. Auch 'find' kennt Regex und könnte daher gezielt nach den gewünschten files suchen. Erspart ebenfalls Zeit x Arbeit = CPU-Power und würde schon eine definierte Liste für rename ergeben. Nebeneffekt: Man könnte sie sich mit '-ls' vorher ansehen.
So, damit lass ich dich erstmal alleine