[linux-l] Einfaches Shellscript zum Umbenennen vieler Dateien gesucht

Norman Steinbach norm at nsteinbach.de
Do Mai 16 01:02:01 CEST 2019


Hallo Linux-Liste,

ich suche ein Shellscript, welches viele Dateien in vielen 
Unterverzeichnissen rekursiv jeweils so umbenennt, dass das letzte 
Zeichen der Dateiendung gelöscht wird. Dieses Zeichen ist immer ein 
Unterstrich "_", und der soll weg.

Hintergrund: Ich sichere gerade von einem übervollen Samsung-Handy Daten 
auf eine externe Festplatte. Das klappte per MTP nicht so, wie es 
sollte, weil jeweils zu lange gebraucht wird, um den Verzeichnisinhalt 
im Gerätespeicher einzulesen. Der Workaround ist gewesen, per 
"SmartSwitch" die Dateien (in erster Linie Tausende von Bildern) auf die 
SD-Karte zu sichern, von wo sie sich dann problemlos kopieren lassen.
Diese Backup-Äpp benennt die Dateien jedoch immer so um, dass sie an den 
jeweiligen Dateinamen einen Unterstrich dran hängt.

Da die Daten jedoch nicht als Backup in das Handy zurückgespielt werden 
sollen, sondern vom PC aus (unter Windows - das hat es überhaupt nicht 
hingekriegt mit der Sicherung) genutzt werden sollen, müssen die 
Dateinamen, um nun wieder "verwertbar" zu sein, alle wieder in ihr 
ordentliches Format gebracht werden, d.h. "dateiname.jpg_" muss wieder 
zu "dateiname.jpg" werden, bei allen anderen Endungen analog (z.B. 
".mp4_" bei Videos zu ".mp4", oder ".pdf_" zu ".pdf" usw.)

Hierfür gibt es sicherlich eine schöne, einfache Methode, das per 
Shell-Script zu automatisieren - nur dass ich leider nie gelernt habe, 
Shell-Scripte selbst zu entwickeln, weshalb ich hier um Hilfe bitten möchte.

Falls das mit der Rekursion in die Unterverzeichnisse nicht 
funktioniert, wäre auch eine Variante "im aktuellen Verzeichnis" 
ausreichend, da nicht so viele davon relevante Daten enthalten, und der 
Rest eh wegfliegt.


Danke & viele Grüße,

Norman



Mehr Informationen über die Mailingliste linux-l