[EasyLinux-Suse] Dateinamen per Script ändern

Matthias Müller elv_matth.mueller at web.de
Mit Dez 17 23:26:10 CET 2008


Am Mittwoch, 17. Dezember 2008 12:39 schrieb Uwe Herrmuth:
> Hallo Scriptfreunde,
>
> das leidige Problem, wenn man Dateien von Windows-Usern bekommt, sind immer
> wieder diese vermaledeiten Leerzeichen.
> Man könnte die ja mit
>
> find /Ordner -name "* *" | while read a ; do mv "${a}" "${a//\ /_}" ; done
So geht das nicht

Lass den Befehl _einmal_ laufen und prüfe dann ob du noch Dateien mit 
Leerzeichen drin hast, vor allem Pfade.
Beim ersten Fund von einer Datei oder einem Pfad mit einem Leerzeichen sorgt 
mv dafür, dass der Pfad mit umbenannt wird. 
Aus zB "dies ist ein Pfad/datei 1.txt" wird "dies_ist_ein_Pfad/datei_1.txt". 
Danach geht ein Umbenennen für alle anderen Dateien unterhalb dieses Pfades 
schief, weil der Pfad umbenannt ist. Beispiel

Der find liefert zB folgende Liste:
	dies ist ein Pfad/datei 1.txt
	dies ist ein Pfad/datei 2.txt
	dies ist ein Pfad/datei 3.txt
	dies ist ein Pfad/datei4.txt
	dies ist ein Pfad/datei 5.txt
	dies ist ein Pfad/datei 6.txt

Diese Liste wird in die while-Schleife gepiped und der mv will folgendes 
machen:
	mv "dies ist ein Pfad/datei 1.txt" "dies_ist_ein_Pfad/datei_1.txt" 
	mv "dies ist ein Pfad/datei 2.txt" "dies_ist_ein_Pfad/datei_2.txt" 
	mv "dies ist ein Pfad/datei 3.txt" "dies_ist_ein_Pfad/datei_3.txt" 
	mv "dies ist ein Pfad/datei4.txt" "dies_ist_ein_Pfad/datei4.txt" 
	mv "dies ist ein Pfad/datei 5.txt" "dies_ist_ein_Pfad/datei_5.txt" 
	mv "dies ist ein Pfad/datei 6.txt" "dies_ist_ein_Pfad/datei_6.txt"

Spätesten der zweite mv geht schief, weil es den Pfad "dies ist ein Pfad" 
nicht mehr gibt.

Das ganze muss erst alle Dateien und dann die Pfade von innen (unten) nach 
außen (oben) abarbeiten.

Skript bauen ist die gescheiteste Lösung, die mir einfällt. Muss mir mal 
Gedanken machen.

-- 
Mit freundlichen Grüßen
Matthias Müller
(Benutzer #439779 im Linux-Counter http://counter.li.org)
PS: Bitte senden Sie als Antwort auf meine E-Mails reine Text-Nachrichten!
Siehe auch: http://www.gnu.org/philosophy/no-word-attachments.de.html
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 481 bytes
Beschreibung: nicht verfügbar
URL         : http://www.easylinux.de/pipermail/suse/attachments/20081217/ebcf8fcf/attachment.pgp