Hallo, 2006-05-24 12:11 +0200, Martin Ereth:
Hallo!
Mein Problem ist schwierig zu beschreiben, daher hat mir google auch nicht geholfen.
Ich versuche es mal: In einem Ordner liegen mehrere Dateien, beispielsweise: a.jpg, g.jpg, A.jpg, G.jpg. Bei einem case-sensitive-Dateisystem (es kommt auf Groß-/Kleinschreibung an) kein Problem. Wird aber der Ordner auf ein case-insensitive-Dateisystem (Groß-/Kleinschreibung egal) kopiert, werden die Dateien entweder nicht kopiert, oder überschrieben.
Hat jemand einen Gedanken zur Lösung?
Wie wäre's mit dem folgenden Skript: ---- cut here ---- LOWER='abcdefghijklmnopqrstuvwxyz' UPPER='ABCDEFGHIJKLMNOPQRSTUVWXYZ' declare -i COUNTER for source in * ; do # Change file name to lower case file=`echo "$source" | sed 'y/'$UPPER'/'$LOWER'/'` # Reset counter COUNTER=0 target="$file" if [ "$source" != "$target" ] ; then # Filename had got upper case characters if [ -e "$target" ] ; then # Target file already exist, insert counter # value to the beginning of the file name file="$COUNTER""$target" while [ -e "$file" ] ; do # Target file still exists -> Add counter by 1 and # insert counter value to the beginning of the file name COUNTER=$COUNTER+1 file="$COUNTER""$target" done target="$file" fi # Rename (move) file echo 'Renaming file: '"$source"' -> '"$target" mv "$source" "$target" else echo 'File name unchanged: '"$source" fi done ---- cut here --- Gruß Kimmo