Date: Wed, 04 May 2011 09:24:22 -0400 From: Lowell Gilbert <freebsd-questions-local@be-well.ilk.org> To: Modulok <modulok@gmail.com>, kron24 <kron24@gmail.com> Cc: freebsd-questions@freebsd.org Subject: Re: Piping find into tar... Message-ID: <44r58ey4xl.fsf@lowell-desk.lan> In-Reply-To: <4DC13794.6010004@gmail.com> (kron's message of "Wed, 04 May 2011 13:25:08 %2B0200") References: <BANLkTi=-90CJk41um5A3J-iSEVUCv1Viqg@mail.gmail.com> <BANLkTikxNouAi7SQ0xEEK%2BjGFZzRH=r3TQ@mail.gmail.com> <BANLkTike2NRiY33p1epo0hiz_SbgvGma6g@mail.gmail.com> <BANLkTikuSZLCJ4tbvqnJ22_PYZ8=DnEE=w@mail.gmail.com> <4DC13794.6010004@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
kron24 <kron24@gmail.com> writes: > 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. Yes, xargs isn't part of the solution for this case unless you use the update mode to tar, which will be much slower. However, tar can read the file list from a file, which can be stdin if you want. The equivalent of the above command would be something like: find -E . -regex '.*\.txt$' -print0 | tar --null -T - -cjf result.tbz > I consider cpio a better option here. The old ways still work very well. But it's worth noting that on FreeBSD these days, cpio(1) and tar(1) are both implemented on the same library, so there are very few things that one can do but the other cannot.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44r58ey4xl.fsf>