Next: Remote Tape Server, Up: Media [Contents][Index]

### 9.1 Device Selection and Switching

> (This message will disappear, once this node revised.)

`-f [hostname:]file`
`--file=[hostname:]file`

  Use archive file or device file on hostname.

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 the `--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>`.

`--force-local`

  Archive file is local even if it contains a colon.

`--rsh-command=command`

  Use remote command instead of `rsh`. This option exists so that people who use something other than the standard `rsh` (e.g., a Kerberized `rsh`) can access a remote device.

  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.

`-[0-7][lmh]`

  Specify drive and density.

`-M`
`--multi-volume`

  Create/list/extract multi-volume archive.

  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.

`-L num`
`--tape-length=size[suf]`

  Change tape after writing size units of data. Unless suf is given, size is treated as kilobytes, i.e. ‘`size x 1024`’ bytes. The following suffixes alter this behavior:

  Suffix | Units | Byte Equivalent
  --- | --- | ---
  b | Blocks | size x 512
  B | Kilobytes | size x 1024
  c | Bytes | size
  G | Gigabytes | size x 1024^3
  K | Kilobytes | size x 1024
  k | Kilobytes | size x 1024
  M | Megabytes | size x 1024^2
  P | Petabytes | size x 1024^5
  T | Terabytes | size x 1024^4
  w | Words | size x 2

  Table 9.1: Size Suffixes

  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.

`-F command`
`--info-script=command`
`--new-volume-script=command`

  Execute command at end of each tape. This implies `--multi-volume` (`-M`). See info-script, for a detailed description of this option.

Next: Remote Tape Server, Up: Media [Contents][Index]