Problem Dateinamen mit Sonderzeichen beim verschieben von Dateien von OSX auf Windows
Hallo
mehrere Verzeichnisse sollen von OSX (xserv) auf einen Windows Server verschoben werden.
Leider haben einige der Dateinamen Sonderzeichen / \ : * ? " < > | die Windows nicht verdaut.
(Das wirkt sich so aus, dass das Veschieben unter OSX gar nicht angeboten wird und unter windows einfach ohne Fehlermeldung nicht funktioniert)
Frage: wie kann ich die Dateinamen "Windows konform" machen, ohne jede Datei einzeln anfassen zu müssen?
Danke für die Hilfe!
MIchael
mehrere Verzeichnisse sollen von OSX (xserv) auf einen Windows Server verschoben werden.
Leider haben einige der Dateinamen Sonderzeichen / \ : * ? " < > | die Windows nicht verdaut.
(Das wirkt sich so aus, dass das Veschieben unter OSX gar nicht angeboten wird und unter windows einfach ohne Fehlermeldung nicht funktioniert)
Frage: wie kann ich die Dateinamen "Windows konform" machen, ohne jede Datei einzeln anfassen zu müssen?
Danke für die Hilfe!
MIchael
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 251866
Url: https://administrator.de/contentid/251866
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo Michael,
könntest du mit einem Bash-Script unter OSX erledigen, das die Sonderzeichen z.B. durch einen Unterstrich ersetzt:
Dazu öffnest du einen Terminal, wechselst in dein Verzeichnis mit den Dateien und gibst dann folgendes ein
In dedn Editor fügst du dann obigen Code ein, und drückst STRG+O um das Script zu speichern, danach ein STRG+X um den Editor zu verlassen. Dann das Script noch ausführbar machen:
und zum Schluss mit einem
das Script starten.
WICHTIG das Script durchläuft immer alle Dateien und Ordner in dem man sich in der Shell aktuell befindet !
Bitte erst an einem Testordner bei dir testen. Das Script durchläuft alle Ordner unterhalb des aktuellen Ordners rekursiv
Grüße Uwe
könntest du mit einem Bash-Script unter OSX erledigen, das die Sonderzeichen z.B. durch einen Unterstrich ersetzt:
#!/bin/bash
find . -depth -name "*[\<\>/\*\?\|\"\:]*" |
while read FILEDIR
do
DIR="${FILEDIR%/*}"
FILE="${FILEDIR/*\/}"
NEWFILE="${FILE//[\<\>\/\*\?\|\"\:]/_}"
mv "$DIR/$FILE" "$DIR/$NEWFILE"
done
find . -depth -name "*?." -type d |
while read DIR
do
NEWDIR="${DIR/%./}"
if ! test -d "$NEWDIR" ;then
mv "$DIR" "$NEWDIR"
fi
done
nano replace.sh
chmod +x replace.sh
./replace.sh
WICHTIG das Script durchläuft immer alle Dateien und Ordner in dem man sich in der Shell aktuell befindet !
Bitte erst an einem Testordner bei dir testen. Das Script durchläuft alle Ordner unterhalb des aktuellen Ordners rekursiv
Grüße Uwe
Zitat von @GrEEnbYte:
Ich bin jetzt in das Verzeichnis gewechselt habe das script dort hin kopiert und ausgeführt. Gibt allerdings eine
Fehlermeldung:
./replace.sh: line 1: !/bin/bash: No such file or directory
Hatte beim Kopieren die Raute am Zeilenanfang der ersten Zeile nicht mitkopiert , sorry ist oben korrigiert ... ist aber für die Funktion des Scripts nicht relevant.Ich bin jetzt in das Verzeichnis gewechselt habe das script dort hin kopiert und ausgeführt. Gibt allerdings eine
Fehlermeldung:
./replace.sh: line 1: !/bin/bash: No such file or directory
Ein weiterers Problem auf das ich gestossen bin:
Es finden sich in den Verzeichnisnamen am (Ende des Namens) auch Punkte die Windows nicht schmecken. gibt es dafür auch eine
Lösung
schau ich gleich malEs finden sich in den Verzeichnisnamen am (Ende des Namens) auch Punkte die Windows nicht schmecken. gibt es dafür auch eine
Lösung
Darf man fragen wie du den Haufen an Mist produziert hast ?