Как исключить папку в 7zip?

8

Я хочу сжать папку, C:\Tempно без определенной подпапки (например C:\Temp\test). Как я могу сделать это с 7zip?

Я придумал следующую команду:

c:\Temp>7zip a -t7z test.7z c:\temp\ -mx0 -x!c:\temp\test\*

но это не работает, так как вывод:

7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Scanning

Updating archive test.7z


Compressing  Temp\admin.PNG
Compressing  Temp\test\admin2.PNG   <<<<<< this file should not be added to the archive
Compressing  Temp\first.txt
Мартин Всетичка
источник
Возможно, чего не хватает, так это -r(рекурсивного) флага. По умолчанию подкаталоги не используются.
Доктор Рейхард
Переключатель -rне помог.
Мартин Всетичка

Ответы:

6

Как проверено на моей системе:

7zip a -t7z -mx0 -x!test\* test.7z c:\temp\ 

Если вы находитесь в исходном каталоге, файлы хранятся с относительными путями, поэтому папка test выглядит так test\file1.txt, а не c:\temp\test\file1.txt.

Обратите внимание, что с ключом -mx0 вы не сжимаете файлы, а просто копируете их в архив в полном размере.

Скотт МакКинни
источник
1
Спасибо. Я заставил это работать с командой 7zip a -t7z test.7z c:\temp\ -mx0 -x!Temp\test\*. Обратите внимание на ту часть, Temp\test\*которая отличается от вашей команды. Я не знаю, почему ваша команда не работает для меня.
Мартин Всетичка
Я использовал -mx0переключатель специально. Мне просто нужно было сделать резервную копию на моем сервере, и я хотел минимальное влияние на процессор моего сервера.
Мартин Всетичка
Я обновил этот ответ, мой личный опыт заключался в том, что мне нужно было указать больше относительного пути, чтобы это тоже
работало