Hi,

while looking into an issue on the help-tar list, we came across this behavior:

$ find .
.
./foo
./foo/bar
./foo/bar/baz
./foo1
./foo1/bar
./foo1/bar/baz
./list2
./list1

$ cat list1
foo
$ cat list2
foo

$ ~/local/tar-1.28/bin/tar --create --file=archive.tar --no-recursion 
--files-from=list1 --recursion --files-from=list2
$ ~/local/tar-1.28/bin/tar --list --file=archive.tar
foo/
foo/bar/
foo/bar/baz
foo/
foo/bar/
foo/bar/baz

==> both are descending, it should happen only for the latter list2

The opposite (the --no-recursion should have no effect at all, as there is no 
argument following):

$ ~/local/tar-1.28/bin/tar --create --file=archive.tar --files-from=list1 
--recursion --files-from=list2 --no-recursion
$ ~/local/tar-1.28/bin/tar --list --file=archive.tar
foo/
foo/

This changes when in addition a real target is specified:

$ ~/local/tar-1.28/bin/tar --create --file=archive.tar --files-from=list1 foo1 
--files-from=list2 --no-recursion
$ ~/local/tar-1.28/bin/tar --list --file=archive.tar
foo/
foo1/
foo1/bar/
foo1/bar/baz
foo/
foo/bar/
foo/bar/baz

Looks like the target foo1 honors the state of the recursion flag, which is 
then also used for --files-from=list2, while --files-from=list1 still sees the 
last argument on the line (although it shouldn't).

===

I would file a bug for it, but I'm not sure how to name this bug due its nasty 
behavior. Or how describe it in a more compact form.

-- Reuti


Reply via email to