Piping find into tar...
bf1783 at googlemail.com
Wed May 4 09:30:03 UTC 2011
On 5/4/11, Chris Rees <utisoft at gmail.com> wrote:
> On 4 May 2011 08:44, b. f. <bf1783 at googlemail.com> wrote:
>>> I've been playing with the find command lately. Is there a way I can pipe
>>> putput list of files from find, into the tar command to create an archive
>>> contains the files which find lists? I tried the following, but it didn't
>>> find -E . '.*\.txt$' -print | tar -cjf result.tgz
>> You could use something like:
>> find -X . -name '*.txt' | xargs tar -cjf result.tgz
>> find . -name '*.txt' -print0 | xargs -0 tar -cjf result.tgz
> How about using pax?
> find . -depth -print | pax -wd | gzip > archive.tgz
> find . -depth -print | pax -wd | bzip2 > archive.tbz
> By the way, in reference to the commands above the -j option is for
> bzip2, so the extension should be .tbz o_O
True. I just reproduced what the OP had. The archive will still use
bzip2 compression, and bsdtar won't have a problem handling it, but
the name will be misleading.
As you wrote, pax(1) is an option, as are cpio(1) and many others...
You should be able to use -z with pax to avoid the extra pipe and
explicit invocation of gzip in the first case.
More information about the freebsd-questions