Архивные файлы и директории, некоторые рекурсивные, некоторые нерекурсивные, с использованием командной строки 7-Zip? - PullRequest
0 голосов
/ 07 октября 2019

Я хочу заархивировать кучу файлов и каталогов с помощью командной строки 7-Zip, которая будет выполняться как сценарий оболочки (оболочка bash на сервере Ubuntu 19.04).

В моем основном каталогедва подкаталога: foo и bar.

Оба каталога foo и bar содержат подкаталоги, например, структура каталогов выглядит так:

foo
 foo/abc
 foo/pqrs
 foo/etc...
bar
 bar/xyz
 bar/temp
 bar/etc...

Я хочусоздать один единственный архив 7z с:

  • всем содержимым foo, включая его подкаталоги
  • всеми файлами в bar, но НЕ в его подкаталогах

Я могу сделать это отдельно, но есть ли способ сделать это за один раз, возможно, используя конструкцию @ filelist.txt?

1 Ответ

1 голос
/ 07 октября 2019

возможно, с использованием конструкции @ filelist.txt?

Использование подстановочного знака мне показалось проще. Например:

7z a -x'!bar/*/' my_archive.7z foo bar

Первое решение, которое я предложил, было:

find foo bar \
     ! \( -type d -path 'bar/*' -prune \) \
     -type f \
     -exec 7z a 'my_archive.7z' {} +

Это будет почти то же самое, за исключением того, что в индексе архива не будет записей каталога.

...