Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2011 08:37:24 -0400
From:      "b. f." <bf1783@googlemail.com>
To:        kron24 <kron24@gmail.com>
Cc:        freebsd-questions@FreeBSD.org
Subject:   Re: Piping find into tar...
Message-ID:  <BANLkTimObcwyA7z+G1MjeE4UXsuyK4rsLg@mail.gmail.com>

Next in thread | Raw E-Mail | Index | Archive | Help
> Dne 4.5.2011 11:42, Modulok napsal(a):
> >>> By the way, in reference to the commands above the -j option is for
> > bzip2, so the extension should be .tbz o_O
> >
> > Thanks everyone! I went with the following, because it works regardless of
> > space characters in filenames. (Thanks for the correction on the extenion. It
> > should indeed be 'tbz' when using the 'j' flag.)
> >
> > find -E . -regex '.*\.txt$' -print0 | xargs -0 tar -cjf result.tbz
>
> When the amount of files is huge then tar will be invoked twice
> or more. Thus result.tbz will contain just files from the last invocation.
>
> I consider cpio a better option here.

The use of simple patterns permitted by tar(1) or cpio(1) may be a
good choice in some cases, but we were responding to the OP's wish to
use find(1), which is a bit more flexible.  If there were a large
number of files, one could still use find and tar in many cases by
appending to the archive rather than (re)creating it with each tar
invocation, e.g.:

 find . -type f -name '*.txt' -print0 | xargs -0 tar -rvf archive.tar
; bzip2 archive.tar

b.



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?BANLkTimObcwyA7z+G1MjeE4UXsuyK4rsLg>