Ich weiß,
ein leidiges und oft gespieltes Thema.
Ich möchte einen Ordner mit allen Unterordners und Dateinamen durchskripten und alles von Sonderzeichen, Leerzeichen befreien. Und dann soll alles auch noch auf max. 128 Zeichen begrenzt werden oder 64, da muss ich mir mal anschauen, wie das aussieht.
Folgendes ist jetzt mein Ansatz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/bash #24.01.2024 verz=/media/DATA950-B/98_20240124_Testumgebung_Umbenennen for i in $(seq 1 10) do find $verz/. -maxdepth $i -exec rename -n 's/ü/ue/g; s/Ü/Ue/g; s/ä/ae/g; s/Ä/Ae/g; s/ö/oe/g; s/Ö/Oe/g; s/ß/ss/g; s/\ /_/g; s/#/_/g' {} \; # rename -n ... nur Test # rename -v ... vebose - zeige alle done cd $verz for altname in *; do neuname=$(echo $altname | cut -c -128); echo $neuname done #scharf: mv $altname $neuname #unscharf: echo $neuname |
Bei der Cut-Nummer habe ich noch Probleme. Diese läuft nämlich erstmal nur im oberen Verzeichnis und nicht rekursiv absteigend. Kann ich das nicht auch mit in die obige erste for-Schleife einbauen? Fände das galanter.
Grüße /dafosy