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

0

Eu tenho este problema, onde eu preciso encontrar todos os arquivos com um nome específico e zipar 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 está sempre fechando-os separadamente. Precisa ser um arquivo bzip.

    
por Paddy Mahadeva 23.05.2017 / 13:25

1 resposta

2

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

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

Você pode usar:

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

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

    
por 23.05.2017 / 13:30