Como recursivamente bzip2 arquivos em uma pasta para um único arquivo bz2

Como recursivamente bzip2 arquivos em uma pasta para um único arquivo bz2

Eu tenho esse problema, onde preciso encontrar todos os arquivos com um nome específico e compactar todos eles em um único arquivo zip.

Eu cansei coisas como

find . -not -name "*bz2" -name "myname*"  -exec bzip2 test.bz2 {} +;

and

find . -not -name "*bz2" -name "myname*"  -exec bzip2 test.bz2 {} /;

e muitos outros, mas é sempre compactando-os separadamente. Preciso que seja um arquivo bzip.

Responder1

O Bzip não pode concatenar vários arquivos em um único arquivo (como ZIP). Bzip serve apenas para compactar um único arquivo (como Gzip).

Se você deseja incluir vários arquivos em um arquivo compactado, use Tar primeiro para criar um arquivo de vários arquivos e, em seguida, compactar esse único arquivo.

Você poderia usar:

 find . -not -name "*bz2" -name "myname*" | xargs tar -jcvf archive.tar.bz2 

xargscolocará todos os nomes de arquivos encontrados após o comando Tar (a sintaxe normal para tar é tar -jcvf archivename.tar.bz2 file1 file2 file3 ...).

informação relacionada