Hi, ich hab ein paar hundert Dateien mit der Endung .png~ .jpg~ .zip~ und so weiter. Die sind in diversen Verzeichnissen und Unterverzeichnissen. Gibt es eine gute Möglichkeit das mit einem kleinen Shellscript wieder richtig hinzubiegen? –> Quasi als .png .zip und .jpg? mit find . -name ".???~" finde ich zwar alle Files die ich ändern will aber bei mv müßte ich dann irgendwie die Variable dazu bringen das letzte Zeichen (~) zu löschen.
dateien in unterverzeichnissen umbenennen
Anmeldungsdatum: Beiträge: 50 Wohnort: Kahl |
|
||
![]() Anmeldungsdatum: Beiträge: 7174 Wohnort: Wolfen (S-A) |
Klar gibt es eine gute Standard-Möglichkeit: mit find und rename, schon 758 Mal hier auf dem Forum erklärt. Bei Dir wäre es also in jedem Verzeichnis ± sowas: rename 's/~$//' *~ (→ man find und man rename ) LG, track |
||
Ehemalige
![]() Anmeldungsdatum: Beiträge: 3802 |
Hallo, Oder wenns rekursiv sein soll:
Grüße, Keba. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 50 Wohnort: Kahl |
Hi, solved - ohne perlerweiterung "rename" find . -type f 2> /dev/null | grep '.*~$' | while read line ; do echo $line >> /share/tildelog.txt newname=`echo $line | sed 's/\~//g' | sed 's/ /\\ /g' ` mv "$line" "$newname" done Bearbeitet von barabbas: Bitte verwende in Zukunft Codeblöcke, um die Übersicht im Forum zu verbessern. |
||
![]() Anmeldungsdatum: Beiträge: 7174 Wohnort: Wolfen (S-A) |
Das mag mal funktionieren ... aber wehe, da ist in einem Dateinamen ein Leerzeichen, ein Zeilenvorschub oder sonst ein bösartiges Sonderzeichen drin ! Oder Du müsstest mit einer Null-terminierten Liste arbeiten, das wäre auch sicher. (→ http://mywiki.wooledge.org/BashGuide/Practices#Quotingcontext=180& ) LG, track |