Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Next: , Previous: after, Up: Choosing

6.7 Descending into Directories

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 tar usually 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 --same-permissions (--preserve-permissions, -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.

The --no-recursion option also affects how exclude patterns are interpreted (see controlling pattern-matching with exclude).

The --no-recursion and --recursion options apply to later options and operands, and can be overridden by later occurrences of --no-recursion and --recursion. For example:

     $ tar -cf jams.tar --no-recursion grape --recursion grape/concord

creates an archive with one entry for grape, and the recursive contents of grape/concord, but no entries under grape other than grape/concord.

  Published under the terms of the GNU General Public License Design by Interspire