Tar: Difference between revisions
Line 6: | Line 6: | ||
{{External|https://www.gnu.org/software/tar/manual/html_node/dereference.html}} | {{External|https://www.gnu.org/software/tar/manual/html_node/dereference.html}} | ||
By default, tar handles archiving symbolic links by writing a block to the archive with the name of the target of the link, thus preserving the symbolic link. However, if the -h|--dereference option is used when creating the archive, tar archives the content of the file the symbolic link points to instead of the symbolic link information. | By default, tar handles archiving symbolic links by writing a block to the archive with the name of the target of the link, thus preserving the symbolic link. However, if the [[#-h.7C--dereference|-h|--dereference]] option is used when creating the archive, tar archives the content of the file the symbolic link points to instead of the symbolic link information. | ||
=Handling Hard Links= | =Handling Hard Links= |
Revision as of 03:14, 25 December 2020
Internal
Handling Symbolic Links
By default, tar handles archiving symbolic links by writing a block to the archive with the name of the target of the link, thus preserving the symbolic link. However, if the -h|--dereference option is used when creating the archive, tar archives the content of the file the symbolic link points to instead of the symbolic link information.
Handling Hard Links
Options
Archival
When tar is executed as root, the file permissions and owner are preserved.
-p
Preserve permissions, default when the root executes the command.
-s
Preserve order (same order). Sort names to extract to match archive.
-z
Compress, produce a tgz.archive.
-C
Source directory.
-h|--dereference
See Handling Symbolic Links above.
Archive
Archive maintaining the user IDs and file permissions:
tar -cvspf .../archive.tar *
Note that the name of the archive file to be created must immediately follow -f, without any interceding parameters.
To also gzip:
tar cfv - ./mydir | gzip > mydir.tgz
Exclude Specific Files from Archive
tar cf <file-name.tar> --exclude <pattern> <dir>
Do not process files or directories that match the specified pattern. Note that exclusions take precedence over patterns or filenames specified on the command line.
Example:
tar cfv module.tar --exclude */Jenkinsfile --exclude */jenkins module/
Restoration
Restore preserving the user ID and file permissions (if done as root, the behavior is implicit):
tar -xvspf .../archive.tar
Extract a Specified File
tar -xf archive.tar some/specific/file.txt gunzip < ... | tar xfv - some/specific/file.txt