Я вызываю эту команду из приложения, которое я пишу.
zip -rm9T --password pass123 /home/cats.zip /home/cats-data/
Я устанавливаю пароль на архив, и я указываю, что целостность архива должна быть проверена после того, как это - создание с переключателем-T.
Проблема состоит в том, что эти 2 вещи не работают хорошо друг с другом.
Часть архивации подходит, но когда она пытается проверить целостность архива, она не знает пароля и ожидает, что это прибудет из stdin... Я уже дал ему пароль... Я не знаю, почему этому нужен он снова... и таким неудобным способом...
Как я могу сделать эту работу?
Кажется, нет никакого хорошего метода обойти это ограничение с zip
приложение, к сожалению. Однако при сценариях этого, хорошее обходное решение должно использовать unzip
утилита для тестирования zip-файла в последующей строке сценария.
Таким образом у Вас было бы что-то как следующее (опускающий -T
опция для zip
):
zip -rm9 --password pass123 /home/cats.zip /home/cats-data/
unzip -t -P pass123 /home/cats.zip
И это должно выполнить Вашу цель!
Примечания:
Опции я использовал для unzip
:
-t
протестируйте архивные файлы. Эта опция извлекает каждый указанный файл в памяти и сравнивает CRC (контроль циклическим избыточным кодом, расширенная контрольная сумма) расширенного файла с сохраненным значением CRC исходного файла.-P
используйте пароль для дешифрования зашифрованных zipfile записей (если таковые имеются).