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

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

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

and

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

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

1 ответ1

2

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 ...).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .