Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 May 2010 22:43:48 -0700
From:      Tim Kientzle <kientzle@freebsd.org>
To:        bf1783@gmail.com
Cc:        Martin McCormick <martin@dc.cis.okstate.edu>, freebsd-questions@freebsd.org
Subject:   Re: tar and --include
Message-ID:  <4BF4CC14.3030809@freebsd.org>
In-Reply-To: <AANLkTilrvL7wDdpGdyT1YZjrai_f2Se024tBGWr0Bcn7@mail.gmail.com>
References:  <AANLkTilrvL7wDdpGdyT1YZjrai_f2Se024tBGWr0Bcn7@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
b. f. wrote:
> Martin McCormick wrote:
>>        What I discovered was that --include doesn't appear to
>> do anything at all. The example in the man page shows using it
>> to filter an existing archive ...  I never
>> tried that since that is not what was needed here.

The --include directive was designed to support the
case of filtering an existing archive.  GNU tar has
no equivalent to bsdtar's @archive feature and hence
has no real need for --include.

If you really need detailed control over which
files get archived, I do recommend learning how
to use find(1) in conjunction with tar.  (Just remember
to use tar's -n option!)

> There certainly seems to be a bug here, either in the documentation or
> the implementation.  The example you mention works as expected for me
> on 9-CURRENT, but the --include option fails on, for example:
> 
> tar -cvf new.tar --include='baz'  foo/bar

In your example here, the first item
tar inspects is "foo/bar", which does not match
the pattern and therefore is not included.
Excluding a directory excludes everything
in the directory.

The net result is the same as if you had specified:
    tar -cvf new.tar --exclude='foo/bar' foo/bar

Cheers,

Tim




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BF4CC14.3030809>