Wie kann ich Bilder mit dem Befehl 'Umbenennen' von "Something_full.jpg" in "Something_500.jpg" rekursiv umbenennen?
quelle
Wie kann ich Bilder mit dem Befehl 'Umbenennen' von "Something_full.jpg" in "Something_500.jpg" rekursiv umbenennen?
Grundsätzlich können Sie das rename
Tool dafür verwenden. Es sollte in einer Perl-basierten Version mit Debian-basierten Linux-Distributionen vorliegen, aber Sie können es auch einfach von der Quelle herunterladen (natürlich müssen Sie es zuerst mit ausführbar machen chmod +x
).
Der folgende Befehl ersetzt das _full
Teil durch _500
alle JPG-Dateien im aktuellen Verzeichnis.
rename 's/_full/_500/' *.jpg
Verwenden Sie dazu rekursiv ausgehend von Ihrem aktuellen Verzeichnis rename
mit find
.
find . -type f -iname "*.jpg" -exec rename 's/_full/_500/' {} \;
Hinweis: Möglicherweise möchten Sie den Befehl testen, bevor er tatsächlich ausgeführt wird. Fügen Sie dazu die -n
Option hinzu rename
(z. B. zwischen rename
und der 's//'
Zeichenfolge).
exec
?find . -type f -iname "*.jpg" -exec rename 's/_full/_500/' {} \;
.find
gegen etwas austauschen , das Rohrleitungskonstrukte umfasst (und möglicherweise aufgrund von Leerzeichen in Dateinamen usw. fehlschlägt)? Ich habe festgestellt, dass Letzteres unsicher und bestenfalls schwer zu lesen ist.Vielleicht möchten Sie in zmv schauen . zmv ist eine zsh-spezifische Funktion und muss
autoload -U zmv
sich irgendwo in Ihrer.zshrc
Datei befinden.EDIT: Als Beispiel könnte die Aufgabe, die das OP stellte, gelöst werden
Ein Auszug aus der
zshcontrib
Manpage:EXTENDED_GLOB-Muster sind enorm leistungsfähig. Hier ist eine gute Einführung in das Konzept.
quelle