Next: Remote Tape Server, Up: Media
(This message will disappear, once this node revised.)
This option is used to specify the file name of the archive tar works on.
If the file name is ‘-’, tar reads the archive from standard input (when listing or extracting), or writes it to standard output (when creating). If the ‘-’ file name is given when updating an archive, tar will read the original archive from its standard input, and will write the entire new archive to its standard output.
If the file name contains a ‘:’, it is interpreted as ‘hostname:file name’. If the hostname contains an at sign (‘@’), it is treated as ‘user@hostname:file name’. In either case, tar will invoke the command rsh (or remsh) to start up an /usr/libexec/rmt on the remote machine. If you give an alternate login name, it will be given to the rsh. Naturally, the remote machine must have an executable /usr/libexec/rmt. This program is free software from the University of California, and a copy of the source code can be found with the sources for tar; it's compiled and installed by default. The exact path to this utility is determined when configuring the package. It is prefix/libexec/rmt, where prefix stands for your installation prefix. This location may also be overridden at runtime by using rmt-command=command option (See —rmt-command, for detailed description of this option. See Remote Tape Server, for the description of rmt command).
If this option is not given, but the environment variable TAPE is set, its value is used; otherwise, old versions of tar used a default archive name (which was picked when tar was compiled). The default is normally set up to be the first tape drive or other transportable I/O medium on the system.
Starting with version 1.11.5, GNU tar uses standard input and standard output as the default device, and I will not try anymore supporting automatic device detection at installation time. This was failing really in too many cases, it was hopeless. This is now completely left to the installer to override standard input and standard output for default device, if this seems preferable. Further, I think most actual usages of tar are done with pipes or disks, not really tapes, cartridges or diskettes.
Some users think that using standard input and output is running after trouble. This could lead to a nasty surprise on your screen if you forget to specify an output file name—especially if you are going through a network or terminal server capable of buffering large amounts of output. We had so many bug reports in that area of configuring default tapes automatically, and so many contradicting requests, that we finally consider the problem to be portably intractable. We could of course use something like ‘/dev/tape’ as a default, but this is also running after various kind of trouble, going from hung processes to accidental destruction of real tapes. After having seen all this mess, using standard input and output as a default really sounds like the only clean choice left, and a very useful one too.
GNU tar reads and writes archive in records, I suspect this is the main reason why block devices are preferred over character devices. Most probably, block devices are more efficient too. The installer could also check for ‘DEFTAPE’ in <sys/mtio.h>.
When this command is not used, the shell command found when
the tar program was installed is used instead. This is
the first found of /usr/ucb/rsh, /usr/bin/remsh,
/usr/bin/rsh, /usr/bsd/rsh or /usr/bin/nsh.
The installer may have overridden this by defining the environment
variable RSH at installation time.
This option causes tar to write a multi-volume archive—one that may be larger than will fit on the medium used to hold it. See Multi-Volume Archives.
This option might be useful when your tape drivers do not properly detect end of physical tapes. By being slightly conservative on the maximum tape length, you might avoid the problem entirely.