Normally, when tar
archives a symbolic link, it writes a
block to the archive naming the target of the link. In that way, the
tar
archive is a faithful record of the filesystem contents.
--dereference (-h) is used with --create (-c), and causes tar
to archive the files symbolic links point to, instead of the links
themselves. When this option is used, when tar
encounters a
symbolic link, it will archive the linked-to file, instead of simply
recording the presence of a symbolic link.
The name under which the file is stored in the file system is not
recorded in the archive. To record both the symbolic link name and
the file name in the system, archive the file under both names. If
all links were recorded automatically by tar
, an extracted file
might be linked to a file name that no longer exists in the file
system.
If a linked-to file is encountered again by tar
while creating
the same archive, an entire second copy of it will be stored. (This
might be considered a bug.)
So, for portable archives, do not archive symbolic links as such, and use --dereference (-h): many systems do not support symbolic links, and moreover, your distribution might be unusable if it contains unresolved symbolic links.
Go to the first, previous, next, last section, table of contents.