6.3 Reading Names from a File

Instead of giving the names of files or archive members on the command
line, you can put the names into a file, and then use the
`--files-from=file-of-names' (`-T
file-of-names') option to tar. Give the name of the
file which contains the list of files to include as the argument to
`--files-from'. In the list, the file names should be separated by
newlines. You will frequently use this option when you have generated
the list of files to archive with the find utility.

`--files-from=file-name'

`-T file-name'

Get names to extract or create from file file-name.

If you give a single dash as a file name for `--files-from', (i.e.,
you specify either --files-from=- or -T -), then the file
names are read from standard input.

Unless you are running tar with `--create', you can not use
both --files-from=- and --file=- (-f -) in the same
command.

Any number of `-T' options can be given in the command line.

The following example shows how to use find to generate a list of
files smaller than 400K in length and put that list into a file
called `small-files'. You can then use the `-T' option to
tar to specify the files from that file, `small-files', to
create the archive `little.tgz'. (The `-z' option to
tar compresses the archive with gzip; see section Creating and Reading Compressed Archives for
more information.)

In the file list given by `-T' option, any file name beginning
with `-' character is considered a tar option and is
processed accordingly(14). For example,
the common use of this feature is to change to another directory by
specifying `-C' option:

In this example, tar will first switch to `/etc'
directory and add files `passwd' and `hosts' to the
archive. Then it will change to `/lib' directory and will archive
the file `libc.a'. Thus, the resulting archive `foo.tar' will
contain:

$ tar tf foo.tar
passwd
hosts
libc.a

If you happen to have a file whose name starts with `-',
precede it with `--add-file' option to prevent it from
being recognized as an option. For example: --add-file=--my-file.