[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-tar] --files-from and recursive extract (behavior change in 1.2
From: |
Pavel Raiskup |
Subject: |
Re: [Bug-tar] --files-from and recursive extract (behavior change in 1.27) |
Date: |
Fri, 19 Jun 2015 14:29:54 +0200 |
User-agent: |
KMail/4.14.7 (Linux/4.0.4-202.fc21.x86_64+debug; KDE/4.14.9; x86_64; ; ) |
On Friday 20 of February 2015 10:32:13 Jan Engelhardt wrote:
> On Thursday 2014-09-18 21:57, Sergey Poznyakoff wrote:
>
> >> The patch fix the first issue I reported, but not the second.
> >
> >Yes, indeed. I have installed the following patch instead, which
> >fixes both issues.
>
>
> This patch, which was recently backported to openSUSE's tar-1.28[1]
>
> [1]
> https://build.opensuse.org/package/view_file/Base:System/tar/tar-recursive--files-from.patch?expand=1
>
> breaks creation of tar archives when --no-recursive appears after -T:
> https://bugzilla.opensuse.org/show_bug.cgi?id=918487
I'm not sure whether this was discussed off-list somehow, but I would call
the *new* behavior as expected. There is inconsistency in behavior - yes,
but does not seem to be regression, rather a new feature..?
The options --{no-,}recursive are kind of "positional" (I'm not sure how
to call that), so those affect only "following" members specified on
commandline. You may do:
$ mkdir dir{1,2,3}
$ touch dir{1,2,3}/{a,b}
$ tar -cvf a.tar dir1 --no-recursion dir2 --recursion dir3
dir1/
dir1/b
dir1/a
dir2/
dir3/
dir3/b
dir3/a
The older behavior was "the-last-wins" but the new is more powerful.
There are other options, e.g. "-C, --directory" that allows you to work
with members similar way. Like 'tar -cf A -C dirA a ../dirB b'.
IMHO, from the long term perspective, it would be fine if other options
like '--owner', '--group', '--xattrs', .. worked the same way. This is
now possible only by --files-from (and thus the "classic option usage" and
the -T option are not completely consistent):
$ cat T
dir1
--xattrs --owner root --group root
dir2
--no-xattrs --owner apache --group apache
dir3
$ tar --posix -cf A --files-from T
$ tar --xattrs-include='*' -tvvf A
drwxrwxr-x praiskup/praiskup 0 2015-06-19 13:51 dir1/
-rw-rw-r-- praiskup/praiskup 0 2015-06-19 13:51 dir1/b
-rw-rw-r-- praiskup/praiskup 0 2015-06-19 13:51 dir1/a
drwxrwxr-x* root/root 0 2015-06-19 13:51 dir2/
x: 36 security.selinux
-rw-rw-r--* root/root 0 2015-06-19 13:51 dir2/b
x: 36 security.selinux
-rw-rw-r--* root/root 0 2015-06-19 13:51 dir2/a
x: 36 security.selinux
drwxrwxr-x apache/apache 0 2015-06-19 13:51 dir3/
-rw-rw-r-- apache/apache 0 2015-06-19 13:51 dir3/b
-rw-rw-r-- apache/apache 0 2015-06-19 13:51 dir3/a
Pavel
- Re: [Bug-tar] --files-from and recursive extract (behavior change in 1.27),
Pavel Raiskup <=