[bash] mv in for-Schleife

24/03/2014 - 19:58 von Holger Paulsen | Report spam
Ich habe hier in einem Ordner etliche Dateien, deren Namen
mit „MP3” enden. Diese Endung möchte ich entkapitalisieren,
d.h. die Endung soll „mp3” werden.

Mein Ansatz war:

for i in *MP3; do mv $i ./`basename -s MP3 $i`mp3; done

Funktioniert nicht.

Ich erhalte für jede wünschenswert umzubennenende Datei die
Meldung

mv: das angegebene Ziel „$I.mp3“ ist kein Verzeichnis

„$I” ist dabei hier der Teil des Dateinamens, den ich
beibehalten möchte. Also will mv die ursprüngliche Datei in
ein Verzeichnis verschieben, das so benannt ist, wie ich es
für die Datei wünsche.

Ich stehe auf'm Schlauch. Any hints?


Holger
 

Lesen sie die antworten

#1 Dominic Reich
24/03/2014 - 20:08 | Warnen spam
Holger Paulsen schrieb am Mon, 24 Mar 2014 19:58:03 +0100 folgendes:

Mein Ansatz war:

for i in *MP3; do mv $i ./`basename -s MP3 $i`mp3; done

Funktioniert nicht.

Ich erhalte für jede wünschenswert umzubennenende Datei die
Meldung

mv: das angegebene Ziel „$I.mp3“ ist kein Verzeichnis



Versuch's mal mit Anführungszeichen:

| for i in *MP3; do mv "$i" "`basename -s MP3 "$i"`mp3" ; done

Ähnliche fragen