Wie kann ich eine Reihe von Dateinamen unter Linux stapelweise umbenennen?

8

Ich habe einen Ordner mit Bildern mit dem Namen:

pic001-2.png
pic002-2.png
pic003-2.png 

Wie benenne ich sie wie folgt um?

pic001.png
pic002.png
pic003.png 

Ich habe versucht, mv "pic*-2.png" "pic*.png"aber immer wieder Fehler zu bekommen.

user114558
quelle

Antworten:

10

Dadurch wird der erste -2in jedem Dateinamen gefundene gelöscht :

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

Um es zu testen, stellen Sie einfach echodie mvZeile voran .

Aluísio ASG
quelle
9

Sie benötigen den entsprechend benannten Befehl 'Umbenennen'!

Versuchen Sie so etwas:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

Als erstes Argument wird ein regulärer Perl-Ausdruck verwendet, sodass Ihre Optionen für Musterabgleich und Manipulation ziemlich umfangreich sind. Ausführliche Informationen finden Sie in der Manpage zum Umbenennen (1).

Schwach
quelle