On Son, 06 Okt 2002 at 13:37 (+0200), Poldi Winkler wrote:
jetzt habe ich mal weiter versucht, Euch zu verstehen, aber der Erfolg ist begrenzt. Eins denke ich ist klar, beim Kopieren der symlinks mit tar -czf bleibt der Bezug der symlinks of die Original-Verzeichnisse und es entsteht kein symlink auf die backup-directories. Wenn ich das unbedingt will, muß ich ein Script schreiben, das die neuen symlinks einzeln setzt. Da ich auf CD keine symlinks schreiben kann, ist das eigentlich auch notwendig, wenn ich mal wieder die Platten total ersetze, denn in diesem Falle habe ich diese verlinkten Dateien bisher immer verloren.
- _Kein_ uns bekanntes Tool zum Archivieren / Kopieren (tar, cpio, afio, ...) kann symbolische Links umsetzen. - symbolische Links mit relativen Pfaden machen in der Regel kein Problem - In meiner Mail habe ich (Schritt 2) so eine Schleife gezeigt, die das Umsetzen von Symlinks mit absoluten Pfaden erledigt. Das funktioniert natürlich nur für Dateisysteme, die Symlinks unterstützen. # 2. Schritt: symlinks holen: find . -type l -print | while read i; do q=`readlink $i | sed 's#^quelle#ziel#'` ln -s $q ziel/$i done zur Erläuterung: find holt alle Dateien vom Typ symbolischer Link; die while-Schleife arbeitet nacheinander jeden gefundenen Dateinamen ab (der über den read in der Variablen $i landet); die nächste Zeile ermittelt zunächst den Inhalt des Links (readlink) und ersetzt darin den Quellpfad durch den Zielpfad (wenn dieser am Anfang des Pfades auftritt); als Besonderheit benutze ich # statt / im sed, da / ja auch Bestandteil der Pfade sein können. Zuletzt wird der Link mit neuem Inhalt im Zielverzeichnis wieder hergestellt (ln). - Wenn das Zieldateisystem keine Symlinks unterstützt, dann musst Du diese mit anderen Mitteln sichern. Es bietet sich eine Archivdatei an, in der alle Symlinks stehen (ungetestet): find . -type l -print | tar -cf /ziel/symlinks.tar -T - lt. Tipp von David, in dem Fall IMHO besser als cpio ;-) (Option -p = --preserve-permissions sollte hier überflüssig sein, da bei einem Symlink immer die Rechte des Ziels entscheiden) Jan P.S.: Die Funktion der Schleife hätte sich eigentlich beim Blättern in den Manual-Pages der einzelnen Kommandos erschließen sollen - so kompliziert ist die nicht. Dass Du auf CD sichern willst, solltest Du beim nächsten Mal gleich schreiben.