|
@@ -63,6 +63,7 @@ developing GNU and promoting software freedom.''
|
|
|
@subtitle @value{RENDITION} @value{VERSION}, @value{UPDATED}
|
|
|
@author Melissa Weisshaus, Jay Fenlason,
|
|
|
@author Thomas Bushnell, n/BSG, Amy Gorin
|
|
|
+@author Sergey Poznyakoff
|
|
|
@c he said to remove it: Fran@,{c}ois Pinard
|
|
|
@c i'm thinking about how the author page *should* look. -mew 2may96
|
|
|
|
|
@@ -823,7 +824,7 @@ forms), as well as a brief description of their meanings. The rest of
|
|
|
this chapter will cover how to use these operations in detail. We will
|
|
|
present the rest of the operations in the next chapter.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --create
|
|
|
@itemx -c
|
|
|
Create a new @command{tar} archive.
|
|
@@ -854,7 +855,7 @@ useful in making things more clear and helping you avoid errors.)
|
|
|
@node file tutorial
|
|
|
@unnumberedsubsec The @option{--file} Option
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --file=@var{archive-name}
|
|
|
@itemx -f @var{archive-name}
|
|
|
Specify the name of an archive file.
|
|
@@ -884,7 +885,7 @@ For more information on using the @value{op-file} option, see
|
|
|
@node verbose tutorial
|
|
|
@unnumberedsubsec The @option{--verbose} Option
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --verbose
|
|
|
@itemx -v
|
|
|
Show the files being worked on as @command{tar} is running.
|
|
@@ -903,9 +904,9 @@ clear, and we will give many examples both using and not using
|
|
|
|
|
|
Sometimes, a single instance of @option{--verbose} on the command line
|
|
|
will show a full, @samp{ls} style listing of an archive or files,
|
|
|
-@c FIXME: Describe the exact output format, e.g., how hard links are displayed.
|
|
|
-giving sizes, owners, and similar information. Other times,
|
|
|
-@option{--verbose} will only show files or members that the particular
|
|
|
+giving sizes, owners, and similar information. @FIXME{Describe the
|
|
|
+exact output format, e.g., how hard links are displayed.}
|
|
|
+Other times, @option{--verbose} will only show files or members that the particular
|
|
|
operation is operating on at the time. In the latter case, you can
|
|
|
use @option{--verbose} twice in a command to get a listing such as that
|
|
|
in the former case. For example, instead of saying
|
|
@@ -939,7 +940,7 @@ Later in the tutorial, we will give examples using @w{@option{--verbose
|
|
|
@node help tutorial
|
|
|
@unnumberedsubsec Getting Help: Using the @option{--help} Option
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --help
|
|
|
|
|
|
The @option{--help} option to @command{tar} prints out a very brief list of
|
|
@@ -1040,7 +1041,7 @@ easiest to understand (and we encourage you to do the same when you use
|
|
|
@command{tar}, to avoid errors).
|
|
|
|
|
|
Note that the part of the command which says,
|
|
|
-@w{@kbd{--file=collection.tar}} is considered to be @emph{one} argument.
|
|
|
+@w{@option{--file=collection.tar}} is considered to be @emph{one} argument.
|
|
|
If you substituted any other string of characters for
|
|
|
@kbd{collection.tar}, then that string would become the name of the
|
|
|
archive file you create.
|
|
@@ -1066,7 +1067,7 @@ When you create an archive, you @emph{must} specify which files you
|
|
|
want placed in the archive. If you do not specify any archive
|
|
|
members, @GNUTAR{} will complain.
|
|
|
|
|
|
-If you now list the contents of the working directory (@kbd{ls}), you will
|
|
|
+If you now list the contents of the working directory (@command{ls}), you will
|
|
|
find the archive file listed as well as the files you saw previously:
|
|
|
|
|
|
@smallexample
|
|
@@ -1321,6 +1322,42 @@ $ @kbd{tar --list --verbose --file=collection.tar folk}
|
|
|
-rw-rw-rw- myself user 62 1990-05-23 10:55 folk
|
|
|
@end smallexample
|
|
|
|
|
|
+@cindex listing member and file names
|
|
|
+@anchor{listing member and file names}
|
|
|
+It is important to notice that the output of @kbd{tar --list
|
|
|
+--verbose} does not necessarily match that produced by @kbd{tar
|
|
|
+--create --verbose} while creating the archive. It is because
|
|
|
+@GNUTAR{}, unless told explicitly not to do so, removes some directory
|
|
|
+prefixes from file names before storing them in the archive
|
|
|
+(@xref{absolute}, for more information). In other
|
|
|
+words, in verbose mode @GNUTAR{} shows @dfn{file names} when creating
|
|
|
+an archive and @dfn{member names} when listing it. Consider this
|
|
|
+example:
|
|
|
+
|
|
|
+@smallexample
|
|
|
+@group
|
|
|
+$ @kbd{tar cfv archive /etc/mail}
|
|
|
+tar: Removing leading `/' from member names
|
|
|
+/etc/mail/
|
|
|
+/etc/mail/sendmail.cf
|
|
|
+/etc/mail/aliases
|
|
|
+$ @kbd{tar tf archive}
|
|
|
+etc/mail/
|
|
|
+etc/mail/sendmail.cf
|
|
|
+etc/mail/aliases
|
|
|
+@end group
|
|
|
+@end smallexample
|
|
|
+
|
|
|
+@cindex @option{--show-stored-names} described
|
|
|
+ This default behavior can sometimes be inconvenient. You can force
|
|
|
+@GNUTAR{} show member names when creating archive by supplying
|
|
|
+@option{--show-stored-names} option.
|
|
|
+
|
|
|
+@table @option
|
|
|
+@item --show-stored-names
|
|
|
+Print member (not @emph{file}) names when creating the archive.
|
|
|
+@end table
|
|
|
+
|
|
|
@cindex File name arguments, using @option{--list} with
|
|
|
@cindex @option{--list} with file name arguments
|
|
|
You can specify one or more individual member names as arguments when
|
|
@@ -2090,7 +2127,7 @@ a reference for deciphering @command{tar} commands in scripts.
|
|
|
@node Operation Summary
|
|
|
@subsection Operations
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
|
|
|
@item --append
|
|
|
@itemx -r
|
|
@@ -2161,7 +2198,7 @@ archive, or if they do not already exist in the archive.
|
|
|
@node Option Summary
|
|
|
@subsection @command{tar} Options
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
|
|
|
@item --absolute-names
|
|
|
@itemx -P
|
|
@@ -2504,7 +2541,7 @@ Wildcards do not match @samp{/} when excluding files.
|
|
|
@item --null
|
|
|
|
|
|
When @command{tar} is using the @option{--files-from} option, this option
|
|
|
-instructs @command{tar} to expect filenames terminated with @kbd{NUL}, so
|
|
|
+instructs @command{tar} to expect filenames terminated with @option{NUL}, so
|
|
|
@command{tar} can correctly work with file names that contain newlines.
|
|
|
@FIXME-xref{}
|
|
|
|
|
@@ -2619,7 +2656,7 @@ ustar header blocks for the extended headers. The name is obtained
|
|
|
from @var{string} after substituting the following meta-characters:
|
|
|
|
|
|
@multitable @columnfractions .30 .70
|
|
|
-@item Meta-character @tab Replaced By
|
|
|
+@headitem Meta-character @tab Replaced By
|
|
|
@item %d @tab The directory name of the file, equivalent to the
|
|
|
result of the @command{dirname} utility on the translated pathname.
|
|
|
@item %f @tab The filename of the file, equivalent to the result
|
|
@@ -2645,7 +2682,7 @@ shall will be obtained from the contents of @var{string}, after the
|
|
|
following character substitutions have been made:
|
|
|
|
|
|
@multitable @columnfractions .30 .70
|
|
|
-@item Meta-character @tab Replaced By
|
|
|
+@headitem Meta-character @tab Replaced By
|
|
|
@item %n @tab An integer that represents the
|
|
|
sequence number of the global extended header record in the archive,
|
|
|
starting at 1.
|
|
@@ -2795,6 +2832,13 @@ $ tar --show-defaults
|
|
|
Instructs @command{tar} to mention directories its skipping over when
|
|
|
operating on a @command{tar} archive. @FIXME-xref{}
|
|
|
|
|
|
+@item --show-stored-names
|
|
|
+
|
|
|
+This option has effect only when used in conjunction with one of
|
|
|
+archive creation operations. It instructs tar to list the member names
|
|
|
+stored in the archive, as opposed to the actual file
|
|
|
+names. @xref{listing member and file names}.
|
|
|
+
|
|
|
@item --sparse
|
|
|
@itemx -S
|
|
|
|
|
@@ -2832,6 +2876,11 @@ Alters the suffix @command{tar} uses when backing up files from the default
|
|
|
Specifies the length of tapes that @command{tar} is writing as being
|
|
|
@w{@var{num} x 1024} bytes long. @FIXME-xref{}
|
|
|
|
|
|
+@item --test-label
|
|
|
+
|
|
|
+Reads the volume label. If an argument is specified, test whether it
|
|
|
+matches the volume label. @xref{--test-label option}.
|
|
|
+
|
|
|
@item --to-stdout
|
|
|
@itemx -O
|
|
|
|
|
@@ -2914,7 +2963,7 @@ Wildcards match @samp{/} when excluding files.
|
|
|
Here is an alphabetized list of all of the short option forms, matching
|
|
|
them with the equivalent long option.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
|
|
|
@item -A
|
|
|
|
|
@@ -3452,7 +3501,7 @@ where the last chapter left them.)
|
|
|
|
|
|
The five operations that we will cover in this chapter are:
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --append
|
|
|
@itemx -r
|
|
|
Add new entries to an archive that already exists.
|
|
@@ -3957,7 +4006,7 @@ The previous chapter described the basics of how to use
|
|
|
@node Ignore Failed Read
|
|
|
@subsection Ignore Fail Read
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --ignore-failed-read
|
|
|
Do not exit with nonzero on unreadable files or directories.
|
|
|
@end table
|
|
@@ -4029,7 +4078,7 @@ of an archive. @value{xref-blocking-factor}.
|
|
|
|
|
|
@FIXME{need sentence or so of intro here}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --read-full-records
|
|
|
@item -B
|
|
|
Use in conjunction with @value{op-extract} to read an archive which
|
|
@@ -4053,7 +4102,7 @@ since that part of the media is never supposed to be read. @GNUTAR{}
|
|
|
does not write after the end of an archive, but seeks to
|
|
|
maintain compatiblity among archiving utilities.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --ignore-zeros
|
|
|
@itemx -i
|
|
|
To ignore blocks of zeros (ie.@: end-of-archive entries) which may be
|
|
@@ -4135,7 +4184,7 @@ before extracting them.
|
|
|
@node Overwrite Old Files
|
|
|
@unnumberedsubsubsec Overwrite Old Files
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --overwrite
|
|
|
Overwrite existing files and directory metadata when extracting files
|
|
|
from an archive.
|
|
@@ -4166,7 +4215,7 @@ archive, but remove other files before extracting.
|
|
|
@node Keep Old Files
|
|
|
@unnumberedsubsubsec Keep Old Files
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --keep-old-files
|
|
|
@itemx -k
|
|
|
Do not replace existing files from archive. The
|
|
@@ -4180,7 +4229,7 @@ extraction.
|
|
|
@node Keep Newer Files
|
|
|
@unnumberedsubsubsec Keep Newer Files
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --keep-newer-files
|
|
|
Do not replace existing files that are newer than their archive
|
|
|
copies. This option is meaningless with @value{op-list}.
|
|
@@ -4189,7 +4238,7 @@ copies. This option is meaningless with @value{op-list}.
|
|
|
@node Unlink First
|
|
|
@unnumberedsubsubsec Unlink First
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --unlink-first
|
|
|
@itemx -U
|
|
|
Remove files before extracting over them.
|
|
@@ -4201,7 +4250,7 @@ slows @command{tar} down slightly, so it is disabled by default.
|
|
|
@node Recursive Unlink
|
|
|
@unnumberedsubsubsec Recursive Unlink
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --recursive-unlink
|
|
|
When this option is specified, try removing files and directory hierarchies
|
|
|
before extracting over them. @emph{This is a dangerous option!}
|
|
@@ -4224,7 +4273,7 @@ To set the modification times of extracted files to the time when
|
|
|
the files were extracted, use the @value{op-touch} option in
|
|
|
conjunction with @value{op-extract}.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --touch
|
|
|
@itemx -m
|
|
|
Sets the modification time of extracted archive members to the time
|
|
@@ -4240,7 +4289,7 @@ recorded for those files in the archive, use @option{--same-permissions}
|
|
|
in conjunction with the @value{op-extract} operation. @FIXME{Should be
|
|
|
aliased to ignore-umask.}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --preserve-permission
|
|
|
@itemx --same-permission
|
|
|
@itemx --ignore-umask
|
|
@@ -4265,7 +4314,7 @@ preserve them in the file system. If you extract multiple members,
|
|
|
they appear on standard output concatenated, in the order they are
|
|
|
found in the archive.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --to-stdout
|
|
|
@itemx -O
|
|
|
Writes files to the standard output. Used in conjunction with
|
|
@@ -4297,7 +4346,7 @@ tar -xOzf foo.tgz bigfile1 bigfile2 | process
|
|
|
option goes in this section. i have no idea; i only know it's nowhere
|
|
|
else in the book...}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --remove-files
|
|
|
Remove files after adding them to the archive.
|
|
|
@end table
|
|
@@ -4318,7 +4367,7 @@ Remove files after adding them to the archive.
|
|
|
@node Starting File
|
|
|
@unnumberedsubsubsec Starting File
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --starting-file=@var{name}
|
|
|
@itemx -K @var{name}
|
|
|
Starts an operation in the middle of an archive. Use in conjunction
|
|
@@ -4338,7 +4387,7 @@ and @value{ref-exclude}.)
|
|
|
@node Same Order
|
|
|
@unnumberedsubsubsec Same Order
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --same-order
|
|
|
@itemx --preserve-order
|
|
|
@itemx -s
|
|
@@ -5440,7 +5489,7 @@ most users are concerned. As a result, you will usually want to tell
|
|
|
option allows you to either specify or name a file to use as the archive
|
|
|
instead of the default archive file location.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --file=@var{archive-name}
|
|
|
@itemx -f @var{archive-name}
|
|
|
Name the archive to create or operate on. Use in conjunction with
|
|
@@ -5582,7 +5631,7 @@ which contains the list of files to include as the argument to
|
|
|
newlines. You will frequently use this option when you have generated
|
|
|
the list of files to archive with the @command{find} utility.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --files-from=@var{file name}
|
|
|
@itemx -T @var{file name}
|
|
|
Get names to extract or create from file @var{file name}.
|
|
@@ -5698,17 +5747,17 @@ being recognized as an option. For example: @code{--add-file --my-file}.
|
|
|
@end menu
|
|
|
|
|
|
@node nul
|
|
|
-@subsection @kbd{NUL} Terminated File Names
|
|
|
+@subsection @code{NUL} Terminated File Names
|
|
|
|
|
|
-@cindex File names, terminated by @kbd{NUL}
|
|
|
-@cindex @kbd{NUL} terminated file names
|
|
|
+@cindex File names, terminated by @code{NUL}
|
|
|
+@cindex @code{NUL} terminated file names
|
|
|
The @value{op-null} option causes @value{op-files-from} to read file
|
|
|
names terminated by a @code{NUL} instead of a newline, so files whose
|
|
|
names contain newlines can be archived using @option{--files-from}.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --null
|
|
|
-Only consider @kbd{NUL} terminated file names, instead of files that
|
|
|
+Only consider @code{NUL} terminated file names, instead of files that
|
|
|
terminate in a newline.
|
|
|
@end table
|
|
|
|
|
@@ -5721,12 +5770,12 @@ file names that begin with dash.
|
|
|
This example shows how to use @command{find} to generate a list of files
|
|
|
larger than 800K in length and put that list into a file called
|
|
|
@file{long-files}. The @option{-print0} option to @command{find} is just
|
|
|
-like @option{-print}, except that it separates files with a @kbd{NUL}
|
|
|
+like @option{-print}, except that it separates files with a @code{NUL}
|
|
|
rather than with a newline. You can then run @command{tar} with both the
|
|
|
@option{--null} and @option{-T} options to specify that @command{tar} get the
|
|
|
files from that file, @file{long-files}, to create the archive
|
|
|
@file{big.tgz}. The @option{--null} option to @command{tar} will cause
|
|
|
-@command{tar} to recognize the @kbd{NUL} separator between files.
|
|
|
+@command{tar} to recognize the @code{NUL} separator between files.
|
|
|
|
|
|
@smallexample
|
|
|
$ @kbd{find . -size +800 -print0 > long-files}
|
|
@@ -5745,7 +5794,7 @@ $ @kbd{tar -c -v --null --files-from=long-files --file=big.tar}
|
|
|
To avoid operating on files whose names match a particular pattern,
|
|
|
use the @value{op-exclude} or @value{op-exclude-from} options.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --exclude=@var{pattern}
|
|
|
Causes @command{tar} to ignore files that match the @var{pattern}.
|
|
|
@end table
|
|
@@ -5759,7 +5808,7 @@ command @samp{tar -cf src.tar --exclude='*.o' src}.
|
|
|
|
|
|
You may give multiple @option{--exclude} options.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --exclude-from=@var{file}
|
|
|
@itemx -X @var{file}
|
|
|
Causes @command{tar} to ignore files that match the patterns listed in
|
|
@@ -5777,7 +5826,7 @@ added to the archive.
|
|
|
@FIXME{do the exclude options files need to have stuff separated by
|
|
|
newlines the same as the files-from option does?}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --exclude-caches
|
|
|
Causes @command{tar} to ignore directories containing a cache directory tag.
|
|
|
@end table
|
|
@@ -5994,7 +6043,7 @@ differ from the @value{op-update} operation in that they allow you to
|
|
|
specify a particular date against which @command{tar} can compare when
|
|
|
deciding whether or not to archive the files.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --after-date=@var{date}
|
|
|
@itemx --newer=@var{date}
|
|
|
@itemx -N @var{date}
|
|
@@ -6069,7 +6118,7 @@ construct a list of file names which you could then pass to @command{tar}.
|
|
|
archive; see @ref{files} for more information on using @command{find} with
|
|
|
@command{tar}, or look.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --no-recursion
|
|
|
Prevents @command{tar} from recursively descending directories.
|
|
|
|
|
@@ -6128,7 +6177,7 @@ archived because they are in a directory that is being archived;
|
|
|
@command{tar} will still archive files explicitly named on the command line
|
|
|
or through @value{op-files-from}, regardless of where they reside.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --one-file-system
|
|
|
@itemx -l
|
|
|
Prevents @command{tar} from crossing file system boundaries when
|
|
@@ -6172,7 +6221,7 @@ either on the command line or in a file specified using
|
|
|
working directory to the directory @var{directory} after that point in
|
|
|
the list.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --directory=@var{directory}
|
|
|
@itemx -C @var{directory}
|
|
|
Changes the working directory in the middle of a command line.
|
|
@@ -6270,7 +6319,7 @@ The interpretation of @value{op-directory} is disabled by
|
|
|
@subsection Absolute File Names
|
|
|
@UNREVISED
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item -P
|
|
|
@itemx --absolute-names
|
|
|
Do not strip leading slashes from file names, and permit file names
|
|
@@ -6301,7 +6350,12 @@ program to use. Therefore, @GNUTAR{} also strips
|
|
|
leading slashes from member names when putting members into the
|
|
|
archive. For example, if you ask @command{tar} to add the file
|
|
|
@file{/bin/ls} to an archive, it will do so, but the member name will
|
|
|
-be @file{bin/ls}.
|
|
|
+be @file{bin/ls}.@footnote{A side effect of this is that when
|
|
|
+@option{--create} is used with @option{--verbose} the resulting output
|
|
|
+is not, generally speaking, the same as the one you'd get running
|
|
|
+@kbd{tar --list} command. This may be important if you use some
|
|
|
+scripts for comparing both outputs. @xref{listing member and file names},
|
|
|
+for the information on how to handle this case.}
|
|
|
|
|
|
If you use the @value{op-absolute-names} option, @command{tar} will do
|
|
|
none of these transformations.
|
|
@@ -6324,7 +6378,7 @@ to transfer files between systems.}
|
|
|
|
|
|
@FIXME{Is write access an issue?}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --absolute-names
|
|
|
Preserves full file names (including superior directory names) when
|
|
|
archiving files. Preserves leading slash when extracting files.
|
|
@@ -6448,7 +6502,7 @@ The following table summarizes the limitations of each of these
|
|
|
formats:
|
|
|
|
|
|
@multitable @columnfractions .10 .20 .20 .20 .20
|
|
|
-@item Format @tab UID @tab File Size @tab Path Name @tab Devn
|
|
|
+@headitem Format @tab UID @tab File Size @tab Path Name @tab Devn
|
|
|
@item gnu @tab 1.8e19 @tab Unlimited @tab Unlimited @tab 63
|
|
|
@item oldgnu @tab 1.8e19 @tab Unlimited @tab Unlimited @tab 63
|
|
|
@item v7 @tab 2097151 @tab 8GB @tab 99 @tab n/a
|
|
@@ -6785,7 +6839,7 @@ compressed.
|
|
|
|
|
|
The following table summarizes compression options used by @GNUTAR{}.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item -z
|
|
|
@itemx --gzip
|
|
|
@itemx --ungzip
|
|
@@ -6892,7 +6946,7 @@ end up with less space on the tape.}
|
|
|
@cindex Sparse Files
|
|
|
@UNREVISED
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item -S
|
|
|
@itemx --sparse
|
|
|
Handle sparse files efficiently.
|
|
@@ -6953,7 +7007,7 @@ hundreds of tapes). @FIXME-xref{incremental when node name is set.}
|
|
|
|
|
|
@command{tar} ignores the @value{op-sparse} option when reading an archive.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --sparse
|
|
|
@itemx -S
|
|
|
Files stored sparsely in the file system are represented sparsely in
|
|
@@ -7013,7 +7067,7 @@ back to what they were before they were read, use the
|
|
|
|
|
|
Handling of file attributes
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --atime-preserve
|
|
|
Preserve access times on files that are read.
|
|
|
This doesn't work for files that
|
|
@@ -7589,7 +7643,7 @@ not a good idea.
|
|
|
@section Device Selection and Switching
|
|
|
@UNREVISED
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item -f [@var{hostname}:]@var{file}
|
|
|
@itemx --file=[@var{hostname}:]@var{file}
|
|
|
Use archive file or device @var{file} on @var{hostname}.
|
|
@@ -7606,7 +7660,7 @@ input, and will write the entire new archive to its standard output.
|
|
|
|
|
|
If the file name contains a @samp{:}, it is interpreted as
|
|
|
@samp{hostname:file name}. If the @var{hostname} contains an @dfn{at}
|
|
|
-sign (@kbd{@@}), it is treated as @samp{user@@hostname:file name}. In
|
|
|
+sign (@samp{@@}), it is treated as @samp{user@@hostname:file name}. In
|
|
|
either case, @command{tar} will invoke the command @command{rsh} (or
|
|
|
@command{remsh}) to start up an @command{/usr/libexec/rmt} on the remote
|
|
|
machine. If you give an alternate login name, it will be given to the
|
|
@@ -7657,7 +7711,7 @@ character devices. Most probably, block devices are more efficient
|
|
|
too. The installer could also check for @samp{DEFTAPE} in
|
|
|
@file{<sys/mtio.h>}.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --force-local
|
|
|
Archive file is local even if it contains a colon.
|
|
|
|
|
@@ -8016,7 +8070,7 @@ specifying a blocking factor larger then the blocking factor of the archive
|
|
|
@xref{list}, for more information on the @value{op-list}
|
|
|
operation. @xref{Reading}, for a more detailed explanation of that option.
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --blocking-factor=@var{number}
|
|
|
@itemx -b @var{number}
|
|
|
Specifies the blocking factor of an archive. Can be used with any
|
|
@@ -8025,7 +8079,7 @@ operation, but is usually not necessary with @value{op-list}.
|
|
|
|
|
|
Device blocking
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item -b @var{blocks}
|
|
|
@itemx --blocking-factor=@var{blocks}
|
|
|
Set record size to @math{@var{blocks} * 512} bytes.
|
|
@@ -8365,7 +8419,7 @@ and @var{operation} is one of the following:
|
|
|
|
|
|
@FIXME{is there any use for record operations?}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item eof
|
|
|
@itemx weof
|
|
|
Writes @var{number} tape marks at the current position on the tape.
|
|
@@ -8398,20 +8452,6 @@ variable @env{TAPE}; if @env{TAPE} is not set, @command{mt} uses the device
|
|
|
successful, 1 if the command was unrecognized, and 2 if an operation
|
|
|
failed.
|
|
|
|
|
|
-@FIXME{New node on how to find an archive?}
|
|
|
-
|
|
|
-If you use @value{op-extract} with the @value{op-label} option specified,
|
|
|
-@command{tar} will read an archive label (the tape head has to be positioned
|
|
|
-on it) and print an error if the archive label doesn't match the
|
|
|
-@var{archive-name} specified. @var{archive-name} can be any regular
|
|
|
-expression. If the labels match, @command{tar} extracts the archive.
|
|
|
-@value{xref-label}.
|
|
|
-@FIXME-xref{Matching Format Parameters}@FIXME{fix cross
|
|
|
-references}@samp{tar --list --label} will cause @command{tar} to print the
|
|
|
-label.
|
|
|
-
|
|
|
-@FIXME{Program to list all the labels on a tape?}
|
|
|
-
|
|
|
@node Using Multiple Tapes
|
|
|
@section Using Multiple Tapes
|
|
|
@UNREVISED
|
|
@@ -8580,7 +8620,7 @@ volumes, specify @value{op-label} again in conjunction with the
|
|
|
@FIXME{There should be a sample program here, including an exit
|
|
|
before end. Is the exit status even checked in tar? :-(}
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item --multi-volume
|
|
|
@itemx -M
|
|
|
Creates a multi-volume archive, when used in conjunction with
|
|
@@ -8645,84 +8685,127 @@ or such, for pushing a common date in all volumes or an archive set.
|
|
|
@cindex Labels on the archive media
|
|
|
@UNREVISED
|
|
|
|
|
|
-@table @kbd
|
|
|
-@item -V @var{name}
|
|
|
-@itemx --label=@var{name}
|
|
|
-Create archive with volume name @var{name}.
|
|
|
-@end table
|
|
|
-
|
|
|
-This option causes @command{tar} to write out a @dfn{volume header} at
|
|
|
-the beginning of the archive. If @value{op-multi-volume} is used, each
|
|
|
-volume of the archive will have a volume header of @samp{@var{name}
|
|
|
-Volume @var{n}}, where @var{n} is 1 for the first volume, 2 for the
|
|
|
-next, and so on.
|
|
|
-
|
|
|
-@FIXME{Should the arg to --label be a quoted string?? No.}
|
|
|
-
|
|
|
-To avoid problems caused by misplaced paper labels on the archive
|
|
|
+@cindex @option{--label} option introduced
|
|
|
+@cindex @option{-V} option introduced
|
|
|
+ To avoid problems caused by misplaced paper labels on the archive
|
|
|
media, you can include a @dfn{label} entry---an archive member which
|
|
|
contains the name of the archive---in the archive itself. Use the
|
|
|
@value{op-label} option in conjunction with the @value{op-create} operation
|
|
|
to include a label entry in the archive as it is being created.
|
|
|
|
|
|
-If you create an archive using both @value{op-label} and
|
|
|
+@table @option
|
|
|
+@item --label=@var{archive-label}
|
|
|
+@itemx -V @var{archive-label}
|
|
|
+Includes an @dfn{archive-label} at the beginning of the archive when
|
|
|
+the archive is being created, when used in conjunction with the
|
|
|
+@value{op-create} operation. Checks to make sure the archive label
|
|
|
+matches the one specified (when used in conjunction with any other
|
|
|
+operation.
|
|
|
+@end table
|
|
|
+
|
|
|
+ If you create an archive using both @value{op-label} and
|
|
|
@value{op-multi-volume}, each volume of the archive will have an
|
|
|
archive label of the form @samp{@var{archive-label} Volume @var{n}},
|
|
|
where @var{n} is 1 for the first volume, 2 for the next, and so on.
|
|
|
@FIXME-xref{Multi-Volume Archives, for information on creating multiple
|
|
|
volume archives.}
|
|
|
|
|
|
-If you list or extract an archive using @value{op-label}, @command{tar} will
|
|
|
-print an error if the archive label doesn't match the @var{archive-label}
|
|
|
-specified, and will then not list nor extract the archive. In those cases,
|
|
|
-@var{archive-label} argument is interpreted as a globbing-style pattern
|
|
|
-which must match the actual magnetic volume label. @xref{exclude}, for
|
|
|
-a precise description of how match is attempted@footnote{Previous versions
|
|
|
-of @command{tar} used full regular expression matching, or before that, only
|
|
|
-exact string matching, instead of wildcard matchers. We decided for the
|
|
|
-sake of simplicity to use a uniform matching device through @command{tar}.}.
|
|
|
-If the switch @value{op-multi-volume} is being used, the volume label
|
|
|
-matcher will also suffix @var{archive-label} by @w{@samp{ Volume [1-9]*}}
|
|
|
-if the initial match fails, before giving up. Since the volume numbering
|
|
|
-is automatically added in labels at creation time, it sounded logical to
|
|
|
-equally help the user taking care of it when the archive is being read.
|
|
|
-
|
|
|
-The @value{op-label} was once called @option{--volume}, but is not available
|
|
|
-under that name anymore.
|
|
|
-
|
|
|
-To find out an archive's label entry (or to find out if an archive has
|
|
|
-a label at all), use @samp{tar --list --verbose}. @command{tar} will
|
|
|
-print the label first, and then print archive member information, as
|
|
|
-in the example below:
|
|
|
+@cindex Volume label, listing
|
|
|
+@cindex Listing volume label
|
|
|
+ The volume label will be displayed by @option{--list} along with
|
|
|
+the file contents. If verbose display is requested, it will also be
|
|
|
+explicitely marked as in the example below:
|
|
|
|
|
|
@smallexample
|
|
|
+@group
|
|
|
$ @kbd{tar --verbose --list --file=iamanarchive}
|
|
|
V--------- 0 0 0 1992-03-07 12:01 iamalabel--Volume Header--
|
|
|
-rw-rw-rw- ringo user 40 1990-05-21 13:30 iamafilename
|
|
|
+@end group
|
|
|
@end smallexample
|
|
|
|
|
|
-@table @kbd
|
|
|
-@item --label=@var{archive-label}
|
|
|
-@itemx -V @var{archive-label}
|
|
|
-Includes an @dfn{archive-label} at the beginning of the archive when
|
|
|
-the archive is being created, when used in conjunction with the
|
|
|
-@value{op-create} option. Checks to make sure the archive label
|
|
|
-matches the one specified (when used in conjunction with the
|
|
|
-@value{op-extract} option.
|
|
|
-@end table
|
|
|
+@cindex @option{--test-label} option introduced
|
|
|
+@anchor{--test-label option}
|
|
|
+ However, @option{--list} option will cause listing entire
|
|
|
+contents of the archive, which may be undesirable (for example, if the
|
|
|
+archive is stored on a tape). You can request checking only the volume
|
|
|
+by specifying @option{--test-label} option. This option reads only the
|
|
|
+first block of an archive, so it can be used with slow storage
|
|
|
+devices. For example:
|
|
|
+
|
|
|
+@smallexample
|
|
|
+@group
|
|
|
+$ @kbd{tar --test-label --file=iamanarchive}
|
|
|
+iamalabel
|
|
|
+@end group
|
|
|
+@end smallexample
|
|
|
+
|
|
|
+ If @option{--test-label} is used with a single command line
|
|
|
+argument, @command{tar} compares the volume label with the
|
|
|
+argument. It exits with code 0 if the two strings match, and with code
|
|
|
+2 otherwise. In this case no output is displayed. For example:
|
|
|
|
|
|
-To get a common information on all tapes of a series, use the
|
|
|
-@value{op-label} option. For having this information different in each
|
|
|
+@smallexample
|
|
|
+@group
|
|
|
+$ @kbd{tar --test-label --file=iamanarchive 'iamalable'}
|
|
|
+@result{} 0
|
|
|
+$ @kbd{tar --test-label --file=iamanarchive 'iamalable' alabel}
|
|
|
+@result{} 1
|
|
|
+@end group
|
|
|
+@end smallexample
|
|
|
+
|
|
|
+ If you request any operation, other than @option{--create}, along
|
|
|
+with using @option{--label} option, @command{tar} will first check if
|
|
|
+the archive label matches the one specified and will refuse to proceed
|
|
|
+if it does not. Use this as a safety precaution to avoid accidentally
|
|
|
+overwriting existing archives. For example, if you wish to add files
|
|
|
+to @file{archive}, presumably labelled with string @samp{My volume},
|
|
|
+you will get:
|
|
|
+
|
|
|
+@smallexample
|
|
|
+@group
|
|
|
+$ @kbd{tar -rf archive --label 'My volume' .}
|
|
|
+tar: Archive not labeled to match `My volume'
|
|
|
+@end group
|
|
|
+@end smallexample
|
|
|
+
|
|
|
+@noindent
|
|
|
+in case its label does not match. This will work even if
|
|
|
+@file{archive} is not labelled at all.
|
|
|
+
|
|
|
+ Similarly, @command{tar} will refuse to list or extract the
|
|
|
+archive if its label doesn't match the @var{archive-label}
|
|
|
+specified. In those cases, @var{archive-label} argument is interpreted
|
|
|
+as a globbing-style pattern which must match the actual magnetic
|
|
|
+volume label. @xref{exclude}, for a precise description of how match
|
|
|
+is attempted@footnote{Previous versions of @command{tar} used full
|
|
|
+regular expression matching, or before that, only exact string
|
|
|
+matching, instead of wildcard matchers. We decided for the sake of
|
|
|
+simplicity to use a uniform matching device through
|
|
|
+@command{tar}.}. If the switch @value{op-multi-volume} is being used,
|
|
|
+the volume label matcher will also suffix @var{archive-label} by
|
|
|
+@w{@samp{ Volume [1-9]*}} if the initial match fails, before giving
|
|
|
+up. Since the volume numbering is automatically added in labels at
|
|
|
+creation time, it sounded logical to equally help the user taking care
|
|
|
+of it when the archive is being read.
|
|
|
+
|
|
|
+ The @value{op-label} was once called @option{--volume}, but is not available
|
|
|
+under that name anymore.
|
|
|
+
|
|
|
+ You can also use @option{--label} to get a common information on
|
|
|
+all tapes of a series. For having this information different in each
|
|
|
series created through a single script used on a regular basis, just
|
|
|
manage to get some date string as part of the label. For example:
|
|
|
|
|
|
@smallexample
|
|
|
+@group
|
|
|
$ @kbd{tar cfMV /dev/tape "Daily backup for `date +%Y-%m-%d`"}
|
|
|
$ @kbd{tar --create --file=/dev/tape --multi-volume \
|
|
|
--volume="Daily backup for `date +%Y-%m-%d`"}
|
|
|
+@end group
|
|
|
@end smallexample
|
|
|
|
|
|
-Also note that each label has its own date and time, which corresponds
|
|
|
+ Also note that each label has its own date and time, which corresponds
|
|
|
to when @GNUTAR{} initially attempted to write it,
|
|
|
often soon after the operator launches @command{tar} or types the
|
|
|
carriage return telling that the next tape is ready. Comparing date
|
|
@@ -8730,14 +8813,12 @@ labels does give an idea of tape throughput only if the delays for
|
|
|
rewinding tapes and the operator switching them were negligible, which
|
|
|
is usually not the case.
|
|
|
|
|
|
-@FIXME{was --volume}
|
|
|
-
|
|
|
@node verify
|
|
|
@section Verifying Data as It is Stored
|
|
|
@cindex Verifying a write operation
|
|
|
@cindex Double-checking a write operation
|
|
|
|
|
|
-@table @kbd
|
|
|
+@table @option
|
|
|
@item -W
|
|
|
@itemx --verify
|
|
|
Attempt to verify the archive after writing.
|