Я знаю, что вы можете создать текстовый файл, содержащий список файлов, а затем попросить 7zip сослаться на этот файл, чтобы он мог исключить их из архива, но я не могу найти синтаксис для этого. Может кто-нибудь помочь?
Я знаю, что вы можете создать текстовый файл, содержащий список файлов, а затем попросить 7zip сослаться на этот файл, чтобы он мог исключить их из архива, но я не могу найти синтаксис для этого. Может кто-нибудь помочь?
Ответы:
После нескольких часов поисков я наконец понял это. Вот синтаксис переключателя:
7z a -xr@exclude.txt backup.7z c:\whatever\*
Обратите внимание, -xr
вместо -x
. r
Указывает на рекурсивное поэтому он может соответствовать исключенные файлы в глубоких иерархии папок. Также формат текстового файла может быть как минимум ANSI или UTF-8.
Что касается файла, содержащего файлы, то, как сказал OldWolf, это список, разделенный символами возврата каретки:
Telerik.Reporting.dll
Telerik.Reporting.Service.dll
Telerik.ReportViewer.WebForms.dll
Telerik.Web.Design.dll
Telerik.Web.UI.dll
*.txt
Работает как шарм.
Я думаю, что вы хотите переключатель -x с @
7z a -t7z my.zip * -x@myexclusion.lst
Оглядываясь назад, я понял, что вы могли иметь в виду, что вам нужен синтаксис для файла списка. Это должен быть список, разделенный новой строкой. Возможно, вы столкнулись с проблемой кодировки. 7z ожидает, что он будет в формате UTF-8, вы можете переопределить это с помощью ключа -scs или вы можете указать блокноте сохранить файл в формате UTF-8
Если ваш список будет очень коротким, вы можете иметь более одного флага -x:
7z a -r CppSourceJBR.zip * .cpp .h -x! Stdafx. -x! targetver.h
Кстати, во время тестирования мне пришлось продолжать удалять файл .zip. Когда я забыл это, например, targetver.h все еще был в ZIP с последнего запуска.
r
параметр. Это правильный способ рекурсивного исключения файлов PNG в bash (одинарные кавычки, чтобы остановить расширение bash!
и*
):-xr'!*.png'
(edit: одинарные кавычки вместо escape)