Tar: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 7: Line 7:


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.
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.
To create a portable archive aimed at systems that do not support symbolic links, use [[#-h.7C--dereference|-h|--dereference]].


=Handling Hard Links=
=Handling Hard Links=

Revision as of 03:15, 25 December 2020

Internal

Handling Symbolic Links

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.

To create a portable archive aimed at systems that do not support symbolic links, use -h|--dereference.

Handling Hard Links

https://www.gnu.org/software/tar/manual/html_node/hard-links.html

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