Как рекурсивно bzip2 файлы в папке в один файл bz2

967
Paddy Mahadeva

У меня есть проблема, когда мне нужно найти все файлы с определенным именем и сжать их все в один zip-файл.

Я устал такие вещи, как

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

и многие другие, но это всегда происходит по отдельности. Нужно, чтобы это был файл bzip.

0

1 ответ на вопрос

2
mtak

Bzip не может объединять несколько файлов в один архив (например, ZIP). Bzip предназначен только для сжатия одного файла (например, Gzip).

Если вы хотите включить несколько файлов в сжатый архив, сначала используйте Tar, чтобы создать архив из нескольких файлов, а затем распакуйте этот единственный архив.

Вы можете использовать:

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

xargsпоместит все имена файлов, найденные после команды Tar (нормальный синтаксис для tar tar -jcvf archivename.tar.bz2 file1 file2 file3 ...).

Похожие вопросы