Problems with Using the `exclude' Options
-----------------------------------------
Some users find `exclude' options confusing. Here are some common
pitfalls:
* The main operating mode of `tar' does not act on a path name
explicitly listed on the command line if one of its file name
components is excluded. In the example above, if you create an
archive and exclude files that end with `*.o', but explicitly name
the file `dir.o/foo' after all the options have been listed,
`dir.o/foo' will be excluded from the archive.
* You can sometimes confuse the meanings of `--exclude=PATTERN' and
`--exclude-from=FILE-OF-PATTERNS' (`-X FILE-OF-PATTERNS'). Be
careful: use `--exclude=PATTERN' when files to be excluded are
given as a pattern on the command line. Use
`--exclude-from=FILE-OF-PATTERNS' to introduce the name of a file
which contains a list of patterns, one per line; each of these
patterns can exclude zero, one, or many files.
* When you use `--exclude=PATTERN', be sure to quote the PATTERN
parameter, so GNU `tar' sees wildcard characters like `*'. If you
do not do this, the shell might expand the `*' itself using files
at hand, so `tar' might receive a list of files instead of one
pattern, or none at all, making the command somewhat illegal.
This might not correspond to what you want.
For example, write:
$ tar -c -f ARCHIVE.TAR --exclude '*.o' DIRECTORY
rather than:
$ tar -c -f ARCHIVE.TAR --exclude *.o DIRECTORY
* You must use use shell syntax, or globbing, rather than `regexp'
syntax, when using exclude options in `tar'. If you try to use
`regexp' syntax to describe files to be excluded, your command
might fail.
* In earlier versions of `tar', what is now the
`--exclude-from=FILE-OF-PATTERNS' option was called
`--exclude=PATTERN' instead. Now, `--exclude=PATTERN' applies to
patterns listed on the command line and
`--exclude-from=FILE-OF-PATTERNS' applies to patterns listed in a
file.