|
@@ -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
|