Feature Request: Options to limit --one-file-system at the source or destination.

Matt McCutchen matt at mattmccutchen.net
Tue Jan 15 18:40:40 GMT 2008

On Tue, 2008-01-15 at 13:21 -0500, Hans Deragon wrote:
>   Currently, the --one-file-system applies to both the source and
>   destination and this is a problem.
>   In my source, I have a symlink pointing to a directory on another
>   device which I would like to have copied.  I thus use
>   --copy-unsafe-links.
>   I also use --delete.  This is dangerous because if there is a bug in
>   my script, I would not like the destination to become suddenly / and
>   deletion occurs on mounted network drives (granted, the machine would
>   be toast, but the damage would be limited to the machine; not the
>   corporate network).
>   If I make use of --one-file-system, the symlink at the source gets
>   ignored.  So I need a --one-file-system option that applies only to
>   the destination, probably named something like
>   --one-file-system-at-destination.
>   Could that be easily implemented?  The following two options would be
>   nice:
>   --one-file-system-at-source
>     # Limit to one file system at the source.
>   --one-file-system-at-destination
>     # Limit to one file system at the destination.

This is a good feature request and would be easy to implement.

However, if the source contains only a small, fixed set of
cross-filesystem symlinks that you want to follow, a quicker solution
would be to use --relative and provide for each such symlink an
additional source argument that reaches through it, starting a new
--one-file-system traversal at its target.  This approach also avoids
the need for --copy-unsafe-links.  For example, if you want to copy
~/src to ~/dest and have rsync follow a symlink ~/src/extrafiles
-> /tmp/extrafiles to obtain additional source files, you would run:

rsync -r --relative --one-file-system \
	~/src/./ ~/src/./extrafiles/ ~/dest/

Another approach is to use protect filters instead of --one-file-system
as a precaution against undesired deletions.


More information about the rsync mailing list