Usually, tar will recursively explore all directories (either
those given on the command line or through the --files-from
option) for the various files they contain. However, you may not always
want tar to act this way.
The --no-recursion option inhibits tar's recursive descent
into specified directories. If you specify --no-recursion, you can
use the find utility for hunting through levels of directories to
construct a list of file names which you could then pass to tar.
find allows you to be more selective when choosing which files to
archive; see files for more information on using find with
tar, or look.
Prevents tar from recursively descending directories.
Requires tar to recursively descend directories.
This is the default.
When you use --no-recursion, GNU tar grabs
directory entries themselves, but does not descend on them
recursively. Many people use find for locating files they
want to back up, and since tarusually recursively
descends on directories, they have to use the ‘! -d’ option
to find as they usually do not want all the files in a directory.
They then use the --files-from option to archive the files
located via find.
The problem when restoring files archived in this manner is that the
directories themselves are not in the archive; so the
-p) option does not affect them—while users might really
like it to. Specifying --no-recursion is a way to tell
tar to grab only the directory entries given to it, adding
no new files on its own.
The --no-recursion option also applies when extracting: it
causes tar to extract only the matched directory entries, not
the files under those directories.