Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2011 05:30:02 -0400
From:      "b. f." <bf1783@googlemail.com>
To:        utisoft@gmail.com
Cc:        freebsd-questions@freebsd.org, Modulok <modulok@gmail.com>
Subject:   Re: Piping find into tar...
Message-ID:  <BANLkTike2NRiY33p1epo0hiz_SbgvGma6g@mail.gmail.com>
In-Reply-To: <BANLkTikxNouAi7SQ0xEEK%2BjGFZzRH=r3TQ@mail.gmail.com>
References:  <BANLkTi=-90CJk41um5A3J-iSEVUCv1Viqg@mail.gmail.com> <BANLkTikxNouAi7SQ0xEEK%2BjGFZzRH=r3TQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 5/4/11, Chris Rees <utisoft@gmail.com> wrote:
> On 4 May 2011 08:44, b. f. <bf1783@googlemail.com> wrote:
>>> I've been playing with the find command lately. Is there a way I can pipe
>>> the
>>> putput list of files from find, into the tar command to create an archive
>>> which
>>> contains the files which find lists? I tried the following, but it didn't
>>> work
>>> (obviously).
>>>
>>> find -E . '.*\.txt$' -print | tar -cjf result.tgz
>>
>> You could use something like:
>>
>> find -X . -name '*.txt' | xargs tar -cjf result.tgz
>>
>> or
>>
>> find . -name '*.txt' -print0 | xargs -0 tar -cjf result.tgz
>>
>> b.
>
> How about using pax?
>
> find . -depth -print | pax -wd | gzip > archive.tgz
>
> or
>
> 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.

b.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTike2NRiY33p1epo0hiz_SbgvGma6g>