Hallo, Am Tue, 04 Nov 2003, Andreas Feile schrieb:
Möchte gerne meine Bilder umbenennen, und zwar so:
img_1234.jpg => 2003-1234.jpg
Folgendes funktioniert leider dann nicht, wenn im Pfadname ein Leerzeichen ist:
# rename img_ 2003- `find . -name *.jpg`
Du musst das *.jpg quoten, sonst expandiert das die shell schon, sofern auch nur ein .jpg im aktuellen Verz. ist, und bei mehreren wirft find dann einen Fehler weil es: find . -name 1.jpg 2.jpg zu sehen bekommt...
Folgendes funktioniert auch nicht:
# rename img_ 2003- "`find . -name *.jpg`"
Dann kommt der Hinweis, der Dateiname sei zu lang.
find . -name '*.jpg' | while read f; do \ mv -i "$f" "`echo \"$f\" | sed 's!/img_!/2003-!g'`"; \ done Das scheitert dann AFAIR nur an Zeilenumbruechen im Dateinamen oder Pfad. -dnh PS: Evtl. geht auch: find . -name '*.jpg' -print0 | xargs -0 rename img_ 2003- PPS: $ echo 'o l a ' | sed 's l h ' $ echo 'o l a ' | sed 'slh' obfuscated bash anyone? *kicher* -- Wenn dir irgendetwas fremdartig und umbekannt vorkommt, dann sei ganz beruhigt. Hier war nur Woko am Werk. [WoKo in dag°]