Changing the Working Directory
------------------------------
_(This message will disappear, once this node revised.)_
To change the working directory in the middle of a list of file
names, either on the command line or in a file specified using
`--files-from=FILE-OF-NAMES' (`-T FILE-OF-NAMES'), use
`--directory=DIRECTORY' (`-C DIRECTORY'). This will change the working
directory to the directory DIRECTORY after that point in the list.
`--directory=DIRECTORY'
`-C DIRECTORY'
Changes the working directory in the middle of a command line.
For example,
$ tar -c -f jams.tar grape prune -C food cherry
will place the files `grape' and `prune' from the current directory
into the archive `jams.tar', followed by the file `cherry' from the
directory `food'. This option is especially useful when you have
several widely separated files that you want to store in the same
archive.
Note that the file `cherry' is recorded in the archive under the
precise name `cherry', _not_ `food/cherry'. Thus, the archive will
contain three files that all appear to have come from the same
directory; if the archive is extracted with plain `tar --extract', all
three files will be written in the current directory.
Contrast this with the command,
$ tar -c -f jams.tar grape prune -C food red/cherry
which records the third file in the archive under the name `red/cherry'
so that, if the archive is extracted using `tar --extract', the third
file will be written in a subdirectory named `orange-colored'.
You can use the `--directory' option to make the archive independent
of the original name of the directory holding the files. The following
command places the files `/etc/passwd', `/etc/hosts', and `/lib/libc.a'
into the archive `foo.tar':
$ tar -c -f foo.tar -C /etc passwd hosts -C /lib libc.a
However, the names of the archive members will be exactly what they were
on the command line: `passwd', `hosts', and `libc.a'. They will not
appear to be related by file name to the original directories where
those files were located.
Note that `--directory' options are interpreted consecutively. If
`--directory' specifies a relative file name, it is interpreted
relative to the then current directory, which might not be the same as
the original current working directory of `tar', due to a previous
`--directory' option.
When using `--files-from' (Note:files), you can put `-C' options
in the file list. Unfortunately, you cannot put `--directory' options
in the file list. (This interpretation can be disabled by using the
`--null' option.)