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%2BG1MjeE4UXsuyK4rsLg@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: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTimObcwyA7z%2BG1MjeE4UXsuyK4rsLg>