mirror of
https://git.savannah.gnu.org/git/tar.git
synced 2026-07-20 23:12:46 +00:00
*** empty log message ***
This commit is contained in:
@@ -928,6 +928,97 @@ performance (because the software layers above the tape drive still
|
||||
honor the blocking), but not as dramatically as on tape drives that
|
||||
honor blocking.
|
||||
|
||||
Wher reading an archive, @code{tar} can usually figure out the block
|
||||
size on itself. When this is the case, and a non-standard block size
|
||||
was used when the archive was created, @code{tar} will print a message
|
||||
about a non-standard blocking factor, and then operate normally. On
|
||||
some tape devices, however, @code{tar} cannot figure out the block size
|
||||
itself. On most of those, you can specify a blocking factor (with
|
||||
@samp{--block-size) larger than the actual blocking factor, and then use
|
||||
the @samp{--read-full-blocks} option. (If you specify a blocking factor
|
||||
with @samp{--block-size} and don't use the @samp{--read-full-blocks}
|
||||
option, then @code{tar} will not attempt to figure out the blocking size
|
||||
itself.) On some devices, you must always specify the block size
|
||||
exactly with @samp{--block-size} when reading, because @code{tar} cannot
|
||||
figure it out. In any case, use @samp{--list} before doing any
|
||||
extractions to see whether @code{tar} is reading the archive correctly.
|
||||
|
||||
If you use a blocking factor larger than 20, older @code{tar} programs
|
||||
might not be able to read the archive, so we recommend this as a limit
|
||||
to use in practice. GNU @code{tar}, however, will support arbitrarily
|
||||
large block sizes, limited only by the amount of virtual memory or the
|
||||
physical characteristics of the tape device.
|
||||
|
||||
@section Using Multiple Tapes
|
||||
|
||||
Often you might want to write a large archive, one larger than will fit
|
||||
on the actual tape you are using. In such a case, you can run multiple
|
||||
@code{tar} commands, but this can be inconvenient, particularly if you
|
||||
are using options like @samp{--exclude} or dumping entire filesystems.
|
||||
Therefore, @code{tar} supports multiple tapes automatically.
|
||||
|
||||
Use @samp{--multi-volume} on the command line, and then @code{tar} will,
|
||||
when it reaches the end of the tape, prompt for another tape, and
|
||||
continue the archive. Each tape will have an independent archive, and
|
||||
can be read without needing the other. (As an exception to this, the
|
||||
file that @code{tar} was archiving when it ran out of tape will usually
|
||||
be split between the two archives; in this case you need to extract from
|
||||
the first archive, using @samp{--multi-volume}, and then put in the
|
||||
second tape when prompted, so @code{tar} can restore both halves of the
|
||||
file.)
|
||||
|
||||
When prompting for a new tape, @code{tar} accepts any of the following
|
||||
responses:
|
||||
|
||||
@table @samp
|
||||
@item ?
|
||||
Request @code{tar} to explain possible responses
|
||||
@item q
|
||||
Request @code{tar} to exit immediately.
|
||||
@item n @var{file-name}
|
||||
Request @code{tar} to write the next volume on the file @var{file-name}.
|
||||
@item !
|
||||
Request @code{tar} to run a subshell.
|
||||
@item y
|
||||
Request @code{tar} to begin writing the next volume.
|
||||
@end table
|
||||
|
||||
(You should only type @samp{y} after you have changed the tape;
|
||||
otherwise @code{tar} will write over the volume it just finished.)
|
||||
|
||||
If you want more elaborate behavior than this, give @code{tar} the
|
||||
@samp{--info-script=@var{script-name}} option. The file
|
||||
@var{script-name} is expected to be a program (or shell script) to be
|
||||
run instead of the normal prompting procedure. When the program
|
||||
finishes, @code{tar} will immediately begin writing the next volume.
|
||||
(The behavior of the @samp{n} response to the normal tape-change prompt
|
||||
is not available if you use @samp{--info-script}.)
|
||||
|
||||
The method @code{tar} uses to detect end of tape is not perfect, and
|
||||
fails on some operating systems or on some devices. You can use the
|
||||
@samp{--tape-length=@var{size}} (or @samp{-L @var{size}}) option if
|
||||
@code{tar} can't detect the end of the tape itself. The @var{size}
|
||||
argument should be the size of the tape.
|
||||
|
||||
The volume number used by @code{tar} in its tape-change prompt can be
|
||||
changed; if you give the @samp{--volno-file=@var{file-name}} option,
|
||||
then @var{file-name} should contain a decimal number. That number will
|
||||
be used as the volume number of the first volume written. When
|
||||
@code{tar} is finished, it will rewrite the file with the now--current
|
||||
volume number. (This does not change the volume number written on a
|
||||
tape label; it @emph{only} affects the number used in the prompt.)
|
||||
|
||||
If you want @code{tar} to cycle through a series of tape drives, then
|
||||
you can use the @samp{n} response to the tape-change prompt. This is
|
||||
error prone, however, and doesn't work at all with @samp{--info-script}.
|
||||
Therefore, if you give @code{tar} multiple @samp{--file} options, then
|
||||
the specified files will be used, in sequence, as the successive volumes
|
||||
of the archive. Only when the first one in the sequence needs to be
|
||||
used again will @code{tar} prompt for a tape change (or run the info
|
||||
script).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user