Symlink options (was Mysterious (bogus?) rsync(d) errors ...)

Paul Slootman paul at debian.org
Fri May 20 08:51:52 GMT 2005


While on the subject of symlinks,
it would be nice to have an option to convert absolute symlinks
(pointing to an object inside the tree being transferred) to
relative ones during the copy, as those probably won't be useful.

Example:

$ cd /tmp
$ find /tmp/a -ls (edited a bit for width)
 drwxr-xr-x    May 20 10:37 /tmp/a
 drwxr-xr-x    May 20 10:37 /tmp/a/b
 -rw-r--r--    May 20 10:37 /tmp/a/b/foo
 lrwxrwxrwx    May 20 10:37 /tmp/a/bar -> /tmp/a/b/foo
$ rsync -a a a-copy
$ find /tmp/a-copy -ls
 drwxr-xr-x    May 20 10:40 /tmp/a-copy
 drwxr-xr-x    May 20 10:37 /tmp/a-copy/a
 drwxr-xr-x    May 20 10:37 /tmp/a-copy/a/b
 -rw-r--r--    May 20 10:37 /tmp/a-copy/a/b/foo
 lrwxrwxrwx    May 20 10:40 /tmp/a-copy/a/bar -> /tmp/a/b/foo

I'd like an option to make that "bar" symlink be converted from
/tmp/a/b/foo to b/foo ... --convert-symlinks ?

This could e.g. be useful when using a backup of a full system which
gets placed somewhere under a subdirectory (there are plenty of absolute
symlinks in the average system). Also a Debian user asked for this, to
handle e.g. software whose installation procedure creates absolute
symlinks (although that case might be fixable with a perl script that
modifies the symlinks in place); see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=148967


Paul Slootman


More information about the rsync mailing list