Home Explore Blog CI



man-pages

24th chunk of `rsync.man`
9d28e772f8220de411c53919001398cd1676072f74eba63e0000000100000fd6
 into  the  referent item, following the symlink chain to the file
              or directory that it references.  If a symlink chain  is  broken,
              an error is output and the file is dropped from the transfer.

              This  option supersedes any other options that affect symlinks in
              the transfer, since there are no symlinks left in the transfer.

              This option does not change the handling of existing symlinks  on
              the receiving side, unlike versions of rsync prior to 2.6.3 which
              had  the side‐effect of telling the receiving side to also follow
              symlinks.  A modern rsync won’t forward this option to  a  remote
              receiver  (since only the sender needs to know about it), so this
              caveat should only affect someone using  an  rsync  client  older
              than  2.6.7  (which is when -L stopped being forwarded to the re‐
              ceiver).

              See the --keep‐dirlinks (-K) if you need a symlink to a directory
              to be treated as a real directory on the receiving side.

              See the SYMBOLIC LINKS section for multi‐option info.

       --copy‐unsafe‐links
              This tells rsync to copy the  referent  of  symbolic  links  that
              point  outside  the  copied  tree.   Absolute  symlinks  are also
              treated like ordinary files, and  so  are  any  symlinks  in  the
              source path itself when --relative is used.

              Note  that the cut‐off point is the top of the transfer, which is
              the part of the path that rsync isn’t mentioning in  the  verbose
              output.   If you copy "/src/subdir" to "/dest/" then the "subdir"
              directory is a name inside the transfer tree, not the top of  the
              transfer (which is /src) so it is legal for created relative sym‐
              links  to refer to other names inside the /src and /dest directo‐
              ries.  If you instead copy "/src/subdir/" (with a trailing slash)
              to "/dest/subdir" that would not allow symlinks to any files out‐
              side of "subdir".

              Note that safe symlinks are only copied if --links was also spec‐
              ified or implied. The --copy‐unsafe‐links option has no extra ef‐
              fect when combined with --copy‐links.

              See the SYMBOLIC LINKS section for multi‐option info.

       --safe‐links
              This tells the receiving rsync to ignore any  symbolic  links  in
              the  transfer  which point outside the copied tree.  All absolute
              symlinks are also ignored.

              Since this ignoring is happening on the receiving side,  it  will
              still be effective even when the sending side has munged symlinks
              (when  it  is  using  --munge‐links).  It also affects deletions,
              since the file being present in the transfer prevents any  match‐
              ing  file  on the receiver from being deleted when the symlink is
              deemed to be unsafe and is skipped.

              This option must be combined with --links (or --archive) to  have
              any  symlinks in the transfer to conditionally ignore. Its effect
              is superseded by --copy‐unsafe‐links.

              Using this option in conjunction with --relative may  give  unex‐
              pected results.

              See the SYMBOLIC LINKS section for multi‐option info.

       --munge‐links
              This option affects just one side of the transfer and tells rsync
              to  munge  symlink  values  when it is receiving files or unmunge
              symlink values when it is sending files.  The munged values  make
              the symlinks unusable on disk but allows the original contents of
              the symlinks to be recovered.

              The  server‐side  rsync  often  enables  this  option without the

Title: Rsync: More on Symlink Handling (Copy-Unsafe-Links, Safe-Links, Munge-Links)
Summary
This section details how rsync handles symlinks with the options '--copy-unsafe-links', '--safe-links', and '--munge-links'. '--copy-unsafe-links' copies the referent of symlinks pointing outside the copied tree. '--safe-links' instructs the receiving rsync to ignore unsafe symlinks. '--munge-links' alters symlink values to be unusable on disk, allowing later recovery of original contents, often enabled server-side without client knowledge for security.