bsdtar '--exclude pattern' problems

2004-11-30 Thread Karol Kwiatkowski
Hello all,

I upgraded 5.2.1 to 5.3 recently and I'm trying to run my cron scripts
which use tar utility (which defaults to bsdtar(1) on 5.3) and I can't
figure out how to use '--exclude pattern' with it. It seems I'm
missing something obvious here or bsdtar(1) is happily ignoring
--exclude option.

my system:
FreeBSD 5.3-RELEASE-p1 #4: Sat Nov 27 19:37:42 CET 2004

here's what I try to run:

orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
 --exclude root.backup/* --exclude pub/* --exclude ncvs/*

I tried '-W exclude=pattern', too:

orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
  -W exclude=root.backup/* -W exclude=pub/* -W exclude=ncvs/*

Both commands include all directories under /home. However using
/usr/bin/gtar works as expected.

Any help appreciated. Thanks.

Karol

-- 
Karol Kwiatkowski  freebsd at orchid dot homeunix dot org

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: bsdtar '--exclude pattern' problems

2004-11-30 Thread Lowell Gilbert
Karol Kwiatkowski [EMAIL PROTECTED] writes:

 Hello all,
 
 I upgraded 5.2.1 to 5.3 recently and I'm trying to run my cron scripts
 which use tar utility (which defaults to bsdtar(1) on 5.3) and I can't
 figure out how to use '--exclude pattern' with it. It seems I'm
 missing something obvious here or bsdtar(1) is happily ignoring
 --exclude option.
 
 my system:
 FreeBSD 5.3-RELEASE-p1 #4: Sat Nov 27 19:37:42 CET 2004
 
 here's what I try to run:
 
 orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
  --exclude root.backup/* --exclude pub/* --exclude ncvs/*
 
 I tried '-W exclude=pattern', too:
 
 orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
   -W exclude=root.backup/* -W exclude=pub/* -W exclude=ncvs/*
 
 Both commands include all directories under /home. However using
 /usr/bin/gtar works as expected.

According to the tar(1) manual, the file parameters are supposed to
come after all of the option parameters.  So instead of 

 orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
  --exclude root.backup/* --exclude pub/* --exclude ncvs/*

I think you should have

 orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home \
  --exclude root.backup/* --exclude pub/* --exclude ncvs/* .

which seems to do what you're expecting.

I don't have access to a copy of the POSIX spec, but I seem to recall
that it generally expects the options first.  So that may be where the
behaviour originates.

Be well.
-- 
Lowell Gilbert, embedded/networking software engineer, Boston area
http://be-well.ilk.org/~lowell/
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: bsdtar '--exclude pattern' problems

2004-11-30 Thread Karol Kwiatkowski
Lowell Gilbert wrote:
 According to the tar(1) manual, the file parameters are supposed to
 come after all of the option parameters.

Ah, of course! I don't know why I wrote it wrong (some months ago
probably). Thank you.

 Be well.

Cheers,

Karol

-- 
Karol Kwiatkowski  freebsd at orchid dot homeunix dot org
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: bsdtar '--exclude pattern' problems

2004-11-30 Thread Mike Jeays
On Tue, 2004-11-30 at 08:31, Karol Kwiatkowski wrote:
 Hello all,
 
 I upgraded 5.2.1 to 5.3 recently and I'm trying to run my cron scripts
 which use tar utility (which defaults to bsdtar(1) on 5.3) and I can't
 figure out how to use '--exclude pattern' with it. It seems I'm
 missing something obvious here or bsdtar(1) is happily ignoring
 --exclude option.
 
 my system:
 FreeBSD 5.3-RELEASE-p1 #4: Sat Nov 27 19:37:42 CET 2004
 
 here's what I try to run:
 
 orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
  --exclude root.backup/* --exclude pub/* --exclude ncvs/*
 
 I tried '-W exclude=pattern', too:
 
 orchid# /usr/bin/tar -czvf /home/root.backup/test.tar.gz -C /home . \
   -W exclude=root.backup/* -W exclude=pub/* -W exclude=ncvs/*
 
 Both commands include all directories under /home. However using
 /usr/bin/gtar works as expected.
 
 Any help appreciated. Thanks.
 
 Karol

Here is an example that works for me:

tar -czf /usr/tmp/HOME.tar.gz  \
--exclude home/mike/tmp/*  \
--exclude home/mike/tmp?/* \
--exclude home/mike/moz/cache/*\
--exclude home/mike/sylmail\
--exclude home/mike/z/*\
/home/mike/*

You need to leave off the leading /, as it has already been stripped
from the filename before the comparison.  Took me some time to work this
out!


___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: bsdtar '--exclude pattern' problems

2004-11-30 Thread Tim Kientzle
Karol Kwiatkowski wrote:
Lowell Gilbert wrote:
According to the tar(1) manual, the file parameters are supposed to
come after all of the option parameters.
Ah, of course! I don't know why I wrote it wrong (some months ago
probably). Thank you.
gtar and bsdtar do parse options a little
differently, so a few people may need to
adjust their scripts.
Rationale: gtar requires the GNU
getopt library and exploits a few special
features of that library. bsdtar is designed
to work with several different getopt
libraries, so restricts itself to
somewhat more generic behavior.
Tim Kientzle
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]