Das scheint eine recht interessante Aufgabe dahinter zustecken. Ich hab mal was probiert.
Zuerst habe ich mir ein
Windows Verzeichnis für die original Dateien erstellt und darin per Script ein paar Verzeichnisse und Dateien mit Groß+Kleinschreibung
Code:
robi@ULTRA-01:/tmp/test> find Windows/
Windows/
Windows/Test1
Windows/Test1/TeSt1
Windows/Test1/TeSt1/tEst9
Windows/Test1/TeSt1/tEst9/TeSt5
Windows/Test1/TeSt1/tEst9/TeSt5/Hupe
Windows/Test1/TeSt1/tEst9/TeSt5/Fahrad
Windows/Test1/TeSt1/tEst9/TeSt5/Auto
Windows/Test1/TeSt1/tEst9/TeSt5/Bremse
Windows/Test1/TeSt1/tEst9/TeSt5/Moped
Windows/Test1/TeSt9
Windows/Test1/TeSt9/tEst7
Windows/Test1/TeSt9/tEst7/TeSt3
Windows/Test1/TeSt9/tEst7/TeSt3/Hupe
Windows/Test1/TeSt9/tEst7/TeSt3/Fahrad
Windows/Test1/TeSt9/tEst7/TeSt3/Auto
Windows/Test1/TeSt9/tEst7/TeSt3/Bremse
Windows/Test1/TeSt9/tEst7/TeSt3/Moped
Windows/Test1/tesT2
Windows/Test1/tesT2/TeSt3
Windows/Test1/tesT2/TeSt3/tEst5
Windows/Test1/tesT2/TeSt3/tEst5/Hupe
Windows/Test1/tesT2/TeSt3/tEst5/Fahrad
Windows/Test1/tesT2/TeSt3/tEst5/Auto
Windows/Test1/tesT2/TeSt3/tEst5/Bremse
Windows/Test1/tesT2/TeSt3/tEst5/Moped
Windows/Test1/tesT2/TeSt7
Windows/Test1/tesT2/TeSt7/tEst9
Windows/Test1/tesT2/TeSt7/tEst9/Hupe
Windows/Test1/tesT2/TeSt7/tEst9/Fahrad
Windows/Test1/tesT2/TeSt7/tEst9/Auto
Windows/Test1/tesT2/TeSt7/tEst9/Bremse
Windows/Test1/tesT2/TeSt7/tEst9/Moped
Windows/Test1/tesT2/TeSt4
Windows/Test1/tesT2/TeSt4/tEst6
Windows/Test1/tesT2/TeSt4/tEst6/Hupe
Windows/Test1/tesT2/TeSt4/tEst6/Fahrad
Windows/Test1/tesT2/TeSt4/tEst6/Auto
Windows/Test1/tesT2/TeSt4/tEst6/Bremse
Windows/Test1/tesT2/TeSt4/tEst6/Moped
Windows/Test1/TeST8
Windows/Test1/TeST8/tEst4
Windows/Test1/TeST8/tEst4/TeSt1
Windows/Test1/TeST8/tEst4/TeSt1/Hupe
Windows/Test1/TeST8/tEst4/TeSt1/Fahrad
Windows/Test1/TeST8/tEst4/TeSt1/Auto
Windows/Test1/TeST8/tEst4/TeSt1/Bremse
Windows/Test1/TeST8/tEst4/TeSt1/Moped
und genau hier liegt auch schon die erste Problematik, das ganze muss noch eindeutig sein wenn man die Großbuchstaben in Kleinbuchstaben tranferiert hat, also "tesT2" und "TeSt2" in einem Verzeichnis ist nicht mehr eindeutig und würde im folgendem Verlauf meiner Tests irgendwo aufschlagen.
Damit das Ganze nicht zu kompliziert wird, habe ich Leerzeichen und andere Sonderzeichen in Datei- und Verzeichnisnamen und ähnliche Schweinereien vollkommen unbeachtet gelassen.
Als nächsten habe ich dann ein Verzeichnis
Linux erstellt. und die Dateien dort hineinkopiert (für unsere Tests am besten gleich mit rsync).
Code:
robi@ULTRA-01:/tmp/test> mkdir Linux
robi@ULTRA-01:/tmp/test> rsync -av Windows/ Linux/
....
robi@ULTRA-01:/tmp/test> find Windows Linux | sort | pr --column=2 -w 100 -
Linux Windows
Linux/Test1 Windows/Test1
Linux/Test1/TeSt1 Windows/Test1/TeSt1
Linux/Test1/TeSt1/tEst9 Windows/Test1/TeSt1/tEst9
Linux/Test1/TeSt1/tEst9/TeSt5 Windows/Test1/TeSt1/tEst9/TeSt5
Linux/Test1/TeSt1/tEst9/TeSt5/Auto Windows/Test1/TeSt1/tEst9/TeSt5/Auto
Linux/Test1/TeSt1/tEst9/TeSt5/Bremse Windows/Test1/TeSt1/tEst9/TeSt5/Bremse
Linux/Test1/TeSt1/tEst9/TeSt5/Fahrad Windows/Test1/TeSt1/tEst9/TeSt5/Fahrad
Linux/Test1/TeSt1/tEst9/TeSt5/Hupe Windows/Test1/TeSt1/tEst9/TeSt5/Hupe
Linux/Test1/TeSt1/tEst9/TeSt5/Moped Windows/Test1/TeSt1/tEst9/TeSt5/Moped
Linux/Test1/tesT2 Windows/Test1/tesT2
Linux/Test1/tesT2/TeSt3 Windows/Test1/tesT2/TeSt3
Linux/Test1/tesT2/TeSt3/tEst5 Windows/Test1/tesT2/TeSt3/tEst5
Linux/Test1/tesT2/TeSt3/tEst5/Auto Windows/Test1/tesT2/TeSt3/tEst5/Auto
Linux/Test1/tesT2/TeSt3/tEst5/Bremse Windows/Test1/tesT2/TeSt3/tEst5/Bremse
Linux/Test1/tesT2/TeSt3/tEst5/Fahrad Windows/Test1/tesT2/TeSt3/tEst5/Fahrad
Linux/Test1/tesT2/TeSt3/tEst5/Hupe Windows/Test1/tesT2/TeSt3/tEst5/Hupe
Linux/Test1/tesT2/TeSt3/tEst5/Moped Windows/Test1/tesT2/TeSt3/tEst5/Moped
Linux/Test1/tesT2/TeSt4 Windows/Test1/tesT2/TeSt4
Linux/Test1/tesT2/TeSt4/tEst6 Windows/Test1/tesT2/TeSt4/tEst6
Linux/Test1/tesT2/TeSt4/tEst6/Auto Windows/Test1/tesT2/TeSt4/tEst6/Auto
Linux/Test1/tesT2/TeSt4/tEst6/Bremse Windows/Test1/tesT2/TeSt4/tEst6/Bremse
Linux/Test1/tesT2/TeSt4/tEst6/Fahrad Windows/Test1/tesT2/TeSt4/tEst6/Fahrad
Linux/Test1/tesT2/TeSt4/tEst6/Hupe Windows/Test1/tesT2/TeSt4/tEst6/Hupe
Linux/Test1/tesT2/TeSt4/tEst6/Moped Windows/Test1/tesT2/TeSt4/tEst6/Moped
Linux/Test1/tesT2/TeSt7 Windows/Test1/tesT2/TeSt7
Linux/Test1/tesT2/TeSt7/tEst9 Windows/Test1/tesT2/TeSt7/tEst9
Linux/Test1/tesT2/TeSt7/tEst9/Auto Windows/Test1/tesT2/TeSt7/tEst9/Auto
Linux/Test1/tesT2/TeSt7/tEst9/Bremse Windows/Test1/tesT2/TeSt7/tEst9/Bremse
Linux/Test1/tesT2/TeSt7/tEst9/Fahrad Windows/Test1/tesT2/TeSt7/tEst9/Fahrad
Linux/Test1/tesT2/TeSt7/tEst9/Hupe Windows/Test1/tesT2/TeSt7/tEst9/Hupe
Linux/Test1/tesT2/TeSt7/tEst9/Moped Windows/Test1/tesT2/TeSt7/tEst9/Moped
Linux/Test1/TeST8 Windows/Test1/TeST8
Linux/Test1/TeST8/tEst4 Windows/Test1/TeST8/tEst4
Linux/Test1/TeST8/tEst4/TeSt1 Windows/Test1/TeST8/tEst4/TeSt1
Linux/Test1/TeST8/tEst4/TeSt1/Auto Windows/Test1/TeST8/tEst4/TeSt1/Auto
Linux/Test1/TeST8/tEst4/TeSt1/Bremse Windows/Test1/TeST8/tEst4/TeSt1/Bremse
Linux/Test1/TeST8/tEst4/TeSt1/Fahrad Windows/Test1/TeST8/tEst4/TeSt1/Fahrad
Linux/Test1/TeST8/tEst4/TeSt1/Hupe Windows/Test1/TeST8/tEst4/TeSt1/Hupe
Linux/Test1/TeST8/tEst4/TeSt1/Moped Windows/Test1/TeST8/tEst4/TeSt1/Moped
Linux/Test1/TeSt9 Windows/Test1/TeSt9
Linux/Test1/TeSt9/tEst7 Windows/Test1/TeSt9/tEst7
Linux/Test1/TeSt9/tEst7/TeSt3 Windows/Test1/TeSt9/tEst7/TeSt3
Linux/Test1/TeSt9/tEst7/TeSt3/Auto Windows/Test1/TeSt9/tEst7/TeSt3/Auto
Linux/Test1/TeSt9/tEst7/TeSt3/Bremse Windows/Test1/TeSt9/tEst7/TeSt3/Bremse
Linux/Test1/TeSt9/tEst7/TeSt3/Fahrad Windows/Test1/TeSt9/tEst7/TeSt3/Fahrad
Linux/Test1/TeSt9/tEst7/TeSt3/Hupe Windows/Test1/TeSt9/tEst7/TeSt3/Hupe
Linux/Test1/TeSt9/tEst7/TeSt3/Moped Windows/Test1/TeSt9/tEst7/TeSt3/Moped
Danach habe ich im Linux Verzeichnis die Dateinamen und Verzeichnisnamen alle klein gemacht.
Code:
robi@ULTRA-01:/tmp/test> find Linux | tac | while read F; do FD=$(dirname $F); FN=$(basename $F); FN=${FN,,}; mv "$F" "$FD/$FN" ; done
Das Script ist noch ein wenig übereifrig, es macht aus dem Linux-Verzeichnis ein linux-Verzeichnis, aber das ist schnell behoben.
Code:
robi@ULTRA-01:/tmp/test> mv linux Linux
robi@ULTRA-01:/tmp/test> find Windows Linux | sort | pr --column=2 -w 100 -
Linux Windows
Linux/test1 Windows/Test1
Linux/test1/test1 Windows/Test1/TeSt1
Linux/test1/test1/test9 Windows/Test1/TeSt1/tEst9
Linux/test1/test1/test9/test5 Windows/Test1/TeSt1/tEst9/TeSt5
Linux/test1/test1/test9/test5/auto Windows/Test1/TeSt1/tEst9/TeSt5/Auto
Linux/test1/test1/test9/test5/bremse Windows/Test1/TeSt1/tEst9/TeSt5/Bremse
Linux/test1/test1/test9/test5/fahrad Windows/Test1/TeSt1/tEst9/TeSt5/Fahrad
Linux/test1/test1/test9/test5/hupe Windows/Test1/TeSt1/tEst9/TeSt5/Hupe
Linux/test1/test1/test9/test5/moped Windows/Test1/TeSt1/tEst9/TeSt5/Moped
Linux/test1/test2 Windows/Test1/tesT2
Linux/test1/test2/test3 Windows/Test1/tesT2/TeSt3
Linux/test1/test2/test3/test5 Windows/Test1/tesT2/TeSt3/tEst5
Linux/test1/test2/test3/test5/auto Windows/Test1/tesT2/TeSt3/tEst5/Auto
Linux/test1/test2/test3/test5/bremse Windows/Test1/tesT2/TeSt3/tEst5/Bremse
Linux/test1/test2/test3/test5/fahrad Windows/Test1/tesT2/TeSt3/tEst5/Fahrad
Linux/test1/test2/test3/test5/hupe Windows/Test1/tesT2/TeSt3/tEst5/Hupe
Linux/test1/test2/test3/test5/moped Windows/Test1/tesT2/TeSt3/tEst5/Moped
Linux/test1/test2/test4 Windows/Test1/tesT2/TeSt4
Linux/test1/test2/test4/test6 Windows/Test1/tesT2/TeSt4/tEst6
Linux/test1/test2/test4/test6/auto Windows/Test1/tesT2/TeSt4/tEst6/Auto
Linux/test1/test2/test4/test6/bremse Windows/Test1/tesT2/TeSt4/tEst6/Bremse
Linux/test1/test2/test4/test6/fahrad Windows/Test1/tesT2/TeSt4/tEst6/Fahrad
Linux/test1/test2/test4/test6/hupe Windows/Test1/tesT2/TeSt4/tEst6/Hupe
Linux/test1/test2/test4/test6/moped Windows/Test1/tesT2/TeSt4/tEst6/Moped
Linux/test1/test2/test7 Windows/Test1/tesT2/TeSt7
Linux/test1/test2/test7/test9 Windows/Test1/tesT2/TeSt7/tEst9
Linux/test1/test2/test7/test9/auto Windows/Test1/tesT2/TeSt7/tEst9/Auto
Linux/test1/test2/test7/test9/bremse Windows/Test1/tesT2/TeSt7/tEst9/Bremse
Linux/test1/test2/test7/test9/fahrad Windows/Test1/tesT2/TeSt7/tEst9/Fahrad
Linux/test1/test2/test7/test9/hupe Windows/Test1/tesT2/TeSt7/tEst9/Hupe
Linux/test1/test2/test7/test9/moped Windows/Test1/tesT2/TeSt7/tEst9/Moped
Linux/test1/test8 Windows/Test1/TeST8
Linux/test1/test8/test4 Windows/Test1/TeST8/tEst4
Linux/test1/test8/test4/test1 Windows/Test1/TeST8/tEst4/TeSt1
Linux/test1/test8/test4/test1/auto Windows/Test1/TeST8/tEst4/TeSt1/Auto
Linux/test1/test8/test4/test1/bremse Windows/Test1/TeST8/tEst4/TeSt1/Bremse
Linux/test1/test8/test4/test1/fahrad Windows/Test1/TeST8/tEst4/TeSt1/Fahrad
Linux/test1/test8/test4/test1/hupe Windows/Test1/TeST8/tEst4/TeSt1/Hupe
Linux/test1/test8/test4/test1/moped Windows/Test1/TeST8/tEst4/TeSt1/Moped
Linux/test1/test9 Windows/Test1/TeSt9
Linux/test1/test9/test7 Windows/Test1/TeSt9/tEst7
Linux/test1/test9/test7/test3 Windows/Test1/TeSt9/tEst7/TeSt3
Linux/test1/test9/test7/test3/auto Windows/Test1/TeSt9/tEst7/TeSt3/Auto
Linux/test1/test9/test7/test3/bremse Windows/Test1/TeSt9/tEst7/TeSt3/Bremse
Linux/test1/test9/test7/test3/fahrad Windows/Test1/TeSt9/tEst7/TeSt3/Fahrad
Linux/test1/test9/test7/test3/hupe Windows/Test1/TeSt9/tEst7/TeSt3/Hupe
Linux/test1/test9/test7/test3/moped Windows/Test1/TeSt9/tEst7/TeSt3/Moped
Schön zu sehen , jetzt sollten wir die Ausgangskonfiguration von User: TennerDent haben, im Windows ist alles Groß+Klein und im Linux alles nur klein, aber sonst ist alles (hoffentlich) gleich und eindeutig.
Meine Idee jetzt ist folgende: eine 2. zusätzliche Dateistruktur (Verzeichnis
Linuz) anlegen, in der die Verzeichnis und Dateinamen genauso wie im Windows Groß+Klein geschrieben sind, aber bei dem die richtigen Dateien, also die wirklichen Daten Hardlinks auf die kleingeschriebenen Daten-Dateien aus dem Linux-Verzeichnis sind.
Damit haben wir im Linux dann den ganzen Baum 2 mal, einmal alles Kleingeschrieben im Verzeichnis Linux und einmal als Sammlung von Hardlinks mit genau den selben Datei- und Verzeichnisnamen wie sie im Windows Verzeichnis sind. Klingt, kompliziert, aber kann man mit einem kleinem Script erledigen.
Code:
#!/bin/bash
WINDIR="/tmp/test/Windows"
LINDIR="/tmp/test/Linux"
NEUDIR="/tmp/test/Linuz"
mkdir -p ${NEUDIR}
find ${WINDIR} -mindepth 1 -type d | while read DIR
do
DIR=${DIR#$WINDIR/}
mkdir -p ${NEUDIR}/${DIR}
done
find ${WINDIR} -mindepth 1 -type f | while read FILE
do
FILENEU=${FILE#$WINDIR/}
FILELINK=${FILENEU,,}
ln ${LINDIR}/${FILELINK} ${NEUDIR}/${FILENEU}
done
Am Anfang des Scriptes kann man die 3 Verzeichnisse entsprechend seinen Gegebenheiten anpassen. NEUDIR ist das Verzeichnis für die neue Struktur die wir anlegen wollen.
(ich hoffe ihr habt alle einen breiten Bildschrim, ansonsten müsst ihr das folgende mal in eine Textdatei kopieren, damit die Formatierung und Gegenüberstellung passt.
Code:
robi@ULTRA-01:/tmp/test> sh script.sh
robi@ULTRA-01:/tmp/test> find Windows Linux Linuz | sort | pr --column=3 -w 150 -
Linux Linuz Windows
Linux/test1 Linuz/Test1 Windows/Test1
Linux/test1/test1 Linuz/Test1/TeSt1 Windows/Test1/TeSt1
Linux/test1/test1/test9 Linuz/Test1/TeSt1/tEst9 Windows/Test1/TeSt1/tEst9
Linux/test1/test1/test9/test5 Linuz/Test1/TeSt1/tEst9/TeSt5 Windows/Test1/TeSt1/tEst9/TeSt5
Linux/test1/test1/test9/test5/auto Linuz/Test1/TeSt1/tEst9/TeSt5/Auto Windows/Test1/TeSt1/tEst9/TeSt5/Auto
Linux/test1/test1/test9/test5/bremse Linuz/Test1/TeSt1/tEst9/TeSt5/Bremse Windows/Test1/TeSt1/tEst9/TeSt5/Bremse
Linux/test1/test1/test9/test5/fahrad Linuz/Test1/TeSt1/tEst9/TeSt5/Fahrad Windows/Test1/TeSt1/tEst9/TeSt5/Fahrad
Linux/test1/test1/test9/test5/hupe Linuz/Test1/TeSt1/tEst9/TeSt5/Hupe Windows/Test1/TeSt1/tEst9/TeSt5/Hupe
Linux/test1/test1/test9/test5/moped Linuz/Test1/TeSt1/tEst9/TeSt5/Moped Windows/Test1/TeSt1/tEst9/TeSt5/Moped
Linux/test1/test2 Linuz/Test1/tesT2 Windows/Test1/tesT2
Linux/test1/test2/test3 Linuz/Test1/tesT2/TeSt3 Windows/Test1/tesT2/TeSt3
Linux/test1/test2/test3/test5 Linuz/Test1/tesT2/TeSt3/tEst5 Windows/Test1/tesT2/TeSt3/tEst5
Linux/test1/test2/test3/test5/auto Linuz/Test1/tesT2/TeSt3/tEst5/Auto Windows/Test1/tesT2/TeSt3/tEst5/Auto
Linux/test1/test2/test3/test5/bremse Linuz/Test1/tesT2/TeSt3/tEst5/Bremse Windows/Test1/tesT2/TeSt3/tEst5/Bremse
Linux/test1/test2/test3/test5/fahrad Linuz/Test1/tesT2/TeSt3/tEst5/Fahrad Windows/Test1/tesT2/TeSt3/tEst5/Fahrad
Linux/test1/test2/test3/test5/hupe Linuz/Test1/tesT2/TeSt3/tEst5/Hupe Windows/Test1/tesT2/TeSt3/tEst5/Hupe
Linux/test1/test2/test3/test5/moped Linuz/Test1/tesT2/TeSt3/tEst5/Moped Windows/Test1/tesT2/TeSt3/tEst5/Moped
Linux/test1/test2/test4 Linuz/Test1/tesT2/TeSt4 Windows/Test1/tesT2/TeSt4
Linux/test1/test2/test4/test6 Linuz/Test1/tesT2/TeSt4/tEst6 Windows/Test1/tesT2/TeSt4/tEst6
Linux/test1/test2/test4/test6/auto Linuz/Test1/tesT2/TeSt4/tEst6/Auto Windows/Test1/tesT2/TeSt4/tEst6/Auto
Linux/test1/test2/test4/test6/bremse Linuz/Test1/tesT2/TeSt4/tEst6/Bremse Windows/Test1/tesT2/TeSt4/tEst6/Bremse
Linux/test1/test2/test4/test6/fahrad Linuz/Test1/tesT2/TeSt4/tEst6/Fahrad Windows/Test1/tesT2/TeSt4/tEst6/Fahrad
Linux/test1/test2/test4/test6/hupe Linuz/Test1/tesT2/TeSt4/tEst6/Hupe Windows/Test1/tesT2/TeSt4/tEst6/Hupe
Linux/test1/test2/test4/test6/moped Linuz/Test1/tesT2/TeSt4/tEst6/Moped Windows/Test1/tesT2/TeSt4/tEst6/Moped
Linux/test1/test2/test7 Linuz/Test1/tesT2/TeSt7 Windows/Test1/tesT2/TeSt7
Linux/test1/test2/test7/test9 Linuz/Test1/tesT2/TeSt7/tEst9 Windows/Test1/tesT2/TeSt7/tEst9
Linux/test1/test2/test7/test9/auto Linuz/Test1/tesT2/TeSt7/tEst9/Auto Windows/Test1/tesT2/TeSt7/tEst9/Auto
Linux/test1/test2/test7/test9/bremse Linuz/Test1/tesT2/TeSt7/tEst9/Bremse Windows/Test1/tesT2/TeSt7/tEst9/Bremse
Linux/test1/test2/test7/test9/fahrad Linuz/Test1/tesT2/TeSt7/tEst9/Fahrad Windows/Test1/tesT2/TeSt7/tEst9/Fahrad
Linux/test1/test2/test7/test9/hupe Linuz/Test1/tesT2/TeSt7/tEst9/Hupe Windows/Test1/tesT2/TeSt7/tEst9/Hupe
Linux/test1/test2/test7/test9/moped Linuz/Test1/tesT2/TeSt7/tEst9/Moped Windows/Test1/tesT2/TeSt7/tEst9/Moped
Linux/test1/test8 Linuz/Test1/TeST8 Windows/Test1/TeST8
Linux/test1/test8/test4 Linuz/Test1/TeST8/tEst4 Windows/Test1/TeST8/tEst4
Linux/test1/test8/test4/test1 Linuz/Test1/TeST8/tEst4/TeSt1 Windows/Test1/TeST8/tEst4/TeSt1
Linux/test1/test8/test4/test1/auto Linuz/Test1/TeST8/tEst4/TeSt1/Auto Windows/Test1/TeST8/tEst4/TeSt1/Auto
Linux/test1/test8/test4/test1/bremse Linuz/Test1/TeST8/tEst4/TeSt1/Bremse Windows/Test1/TeST8/tEst4/TeSt1/Bremse
Linux/test1/test8/test4/test1/fahrad Linuz/Test1/TeST8/tEst4/TeSt1/Fahrad Windows/Test1/TeST8/tEst4/TeSt1/Fahrad
Linux/test1/test8/test4/test1/hupe Linuz/Test1/TeST8/tEst4/TeSt1/Hupe Windows/Test1/TeST8/tEst4/TeSt1/Hupe
Linux/test1/test8/test4/test1/moped Linuz/Test1/TeST8/tEst4/TeSt1/Moped Windows/Test1/TeST8/tEst4/TeSt1/Moped
Linux/test1/test9 Linuz/Test1/TeSt9 Windows/Test1/TeSt9
Linux/test1/test9/test7 Linuz/Test1/TeSt9/tEst7 Windows/Test1/TeSt9/tEst7
Linux/test1/test9/test7/test3 Linuz/Test1/TeSt9/tEst7/TeSt3 Windows/Test1/TeSt9/tEst7/TeSt3
Linux/test1/test9/test7/test3/auto Linuz/Test1/TeSt9/tEst7/TeSt3/Auto Windows/Test1/TeSt9/tEst7/TeSt3/Auto
Linux/test1/test9/test7/test3/bremse Linuz/Test1/TeSt9/tEst7/TeSt3/Bremse Windows/Test1/TeSt9/tEst7/TeSt3/Bremse
Linux/test1/test9/test7/test3/fahrad Linuz/Test1/TeSt9/tEst7/TeSt3/Fahrad Windows/Test1/TeSt9/tEst7/TeSt3/Fahrad
Linux/test1/test9/test7/test3/hupe Linuz/Test1/TeSt9/tEst7/TeSt3/Hupe Windows/Test1/TeSt9/tEst7/TeSt3/Hupe
Linux/test1/test9/test7/test3/moped Linuz/Test1/TeSt9/tEst7/TeSt3/Moped Windows/Test1/TeSt9/tEst7/TeSt3/Moped
Jetzt kann ich einfach das Windows-Verzeichnis mit dem Linuz-Verzeichnis Synchronisieren, aber immer noch im Linux-Verzeichnis den Luxus der "Nur-kleinschreibung" genießen, auch noch nach der Synchronisation. Und die Synchronisation sollte theoretisch im Idealfall, sowohl in die Eine als auch in die Andere Richtung funktionieren. (Aber nur für schon bestehende Dateien, kommt in einem der 3 Verzeichnissbäume eine Datei neu hinzu, müssten erst wieder dafür die Hardlinks eingerichtet werden)
In unserem Fall sind keine Daten Dateien geändert worden, nur die Zeitstempel des Dateisystems auf Linuz ist anders als im Windows-Verzeichnis (da mittels Script angelegt und nicht durch Synchronisation), und dieses sollte rsync jetzt richtig erkennen und entsprechend nur die Verzeichnisse neu synchronisieren und die Datendateien gar nicht anfassen.
Code:
robi@ULTRA-01:/tmp/test> rsync -av Windows/ Linuz
sending incremental file list
./
Test1/
Test1/TeST8/
Test1/TeST8/tEst4/
Test1/TeST8/tEst4/TeSt1/
Test1/TeSt1/
Test1/TeSt1/tEst9/
Test1/TeSt1/tEst9/TeSt5/
Test1/TeSt9/
Test1/TeSt9/tEst7/
Test1/TeSt9/tEst7/TeSt3/
Test1/tesT2/
Test1/tesT2/TeSt3/
Test1/tesT2/TeSt3/tEst5/
Test1/tesT2/TeSt4/
Test1/tesT2/TeSt4/tEst6/
Test1/tesT2/TeSt7/
Test1/tesT2/TeSt7/tEst9/
sent 817 bytes received 83 bytes 1800.00 bytes/sec
total size is 540 speedup is 0.60
Eine Änderung einer Datendatei im Windows mit anschließender Synchronisation mit dem Linuz -Verzeichnis sollte nur diese eine Datei neu schreiben und die Änderung bei richtigen Optionen sogar anschließend auch im Linux-Verzeichnis wieder zu finden sein. Ein bisschen aufpassen muss man also doch noch mit den rsync Parametern, sonst geht der Hardlink ins Linux-Verzeichnis verloren.
Code:
robi@ULTRA-01:/tmp/test> cat Linux/test1/test1/test9/test5/auto
Hallo Auto Hallo
robi@ULTRA-01:/tmp/test> echo "ich wurde geändert" >> Windows/Test1/TeSt1/tEst9/TeSt5/Auto
robi@ULTRA-01:/tmp/test> rsync -av --inplace Windows/ Linuz
sending incremental file list
Test1/TeSt1/tEst9/TeSt5/Auto
sent 858 bytes received 48 bytes 1812.00 bytes/sec
total size is 563 speedup is 0.62
robi@ULTRA-01:/tmp/test> cat Linux/test1/test1/test9/test5/auto
Hallo Auto Hallo
ich wurde geändert
Ziel erreicht,
Aber Vorsicht, was hier im Test und theoretisch so schön und wunderbar einfach ausschaut, kann in der Praxis genauso gut auch durch Kleinigkeiten (Umlaute, Sonderzeichen, Leerzeichen,.....) wunderbar kompliziert werden.
robi