Update --info-scripts documentation

This commit is contained in:
Sergey Poznyakoff
2005-12-06 23:13:19 +00:00
parent ac74317f46
commit 3f166ce0f5

View File

@@ -2826,6 +2826,12 @@ from the archive. @xref{Recursive Unlink}.
Directs @command{tar} to remove the source file from the file system after
appending it to an archive. @xref{remove files}.
@item --restrict
Disable use of some potentially harmful @command{tar} options.
Currently this option disables shell invocaton from multi-volume menu
(@pxref{Using Multiple Tapes}).
@item --rmt-command=@var{cmd}
Notifies @command{tar} that it should use @var{cmd} instead of
@@ -8619,9 +8625,8 @@ the first archive, using @value{op-multi-volume}, and then put in the
second tape when prompted, so @command{tar} can restore both halves of the
file.)
@GNUTAR{} multi-volume archives do not use a truly
portable format. You need @GNUTAR{} at both end to
process them properly.
@GNUTAR{} multi-volume archives do not use a truly portable format.
You need @GNUTAR{} at both ends to process them properly.
When prompting for a new tape, @command{tar} accepts any of the following
responses:
@@ -8634,7 +8639,8 @@ Request @command{tar} to exit immediately.
@item n @var{file name}
Request @command{tar} to write the next volume on the file @var{file name}.
@item !
Request @command{tar} to run a subshell.
Request @command{tar} to run a subshell. This option can be disabled
by giving @option{--restrict} command line option to @command{tar}.
@item y
Request @command{tar} to begin writing the next volume.
@end table
@@ -8676,9 +8682,12 @@ Format of the archive being processed. @xref{Formats}, for a complete
list of archive format names.
@end table
If the program fails, @command{tar} exits; otherwise, it begins
writing the next volume. The behavior of the @samp{n} response to the
normal tape-change prompt is not available if you use @value{op-info-script}.
The info script can instruct @command{tar} to use new archive name,
by writing in to file descriptor 3 (see below for an
example).
If the info script fails, @command{tar} exits; otherwise, it begins
writing the next volume.
The method @command{tar} uses to detect end of tape is not perfect, and
fails on some operating systems or on some devices. You can use the
@@ -8701,43 +8710,34 @@ finished, it will rewrite the file with the now-current volume number.
per @value{ref-label}, it @emph{only} affects the number used in
the prompt.)
If you want @command{tar} to cycle through a series of tape drives, then
you can use the @samp{n} response to the tape-change prompt. This
method can be used with info scripts as well, although it is not as
straight-forward as using @samp{n} response. For example, the
following script cycles through a series of archive files named
@file{archive-@var{vol}}, where @var{vol} is the archive volume
number:
If you want @command{tar} to cycle through a series of files or tape
drives, there are three approaches to choose from. First of all, you
can give @command{tar} multiple @value{op-file} options. In this case
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 @command{tar} prompt for a tape change (or run
the info script). Secondly, you can use the @samp{n} response to the
tape-change prompt, and, finally, you can use an info script, that
writes new archive name to file descriptor. The following example
illustrates this approach:
@smallexample
@group
#! /bin/sh
echo Preparing volume $TAR_VOLUME of $TAR_ARCHIVE.
name=`expr $TAR_ARCHIVE : '\(.*\)-.*'`
case $TAR_SUBCOMMAND in
-c) mv $TAR_ARCHIVE $@{TAR_ARCHIVE@}$(($TAR_VOLUME - 1));;
-d|-x|-t) test -r $@{TAR_ARCHIVE@}$(($TAR_VOLUME)) || exit 1
ln -sf $@{TAR_ARCHIVE@}$(($TAR_VOLUME)) $TAR_ARCHIVE;;
-c) ;;
-d|-x|-t) test -r $@{name:-$TAR_ARCHIVE@}-$TAR_VOLUME || exit 1
;;
*) exit 1
esac
echo $@{name:-$TAR_ARCHIVE@}-$TAR_VOLUME >&3
@end group
@end smallexample
@noindent
The same approach can be used to cycle through a series of tape drives.
Another possibility is to give @command{tar} multiple @value{op-file}
options. In this case 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 @command{tar} prompt for a
tape change (or run the info script).
Multi-volume archives
With @value{op-multi-volume}, @command{tar} will not abort when it cannot
read or write any more data. Instead, it will ask you to prepare a new
volume. If the archive is on a magnetic tape, you should change tapes
now; if the archive is on a floppy disk, you should change disks, etc.
Each volume of a multi-volume archive is an independent @command{tar}
archive, complete in itself. For example, you can list or extract any
volume alone; just don't specify @value{op-multi-volume}. However, if one