Я пытаюсь обновить свой почтовый индекс, но есть постоянная проблема, такая как zip error: Nothing to do!
или неправильный путь с подпапками.
Вход: файл для обновления /main/zip/folder_1/file1.xml
zip target: /main/zip_file1.zip ->, но этот zip включает подпапки, такие как ../sub1/file1.xml и т. д.
Ожидаемый результат: обновить файл1.xml в zip_file1.zip, но с правильным путем, например zip_file1.zip/sub1/file1.xml
как мне это сделать?
Я пытался это:
zip -ur zip_file1.zip ./main/zip/folder_1/file1.xml
zip -ur zip_file1.zip '*/file1.xml' ./main/zip/folder_1/file1.xml
zip -ur zip_file1.zip '/sub1/file1.xml'./main/zip/folder_1/file1.xml
Невозможно сделать main/zip/folder_1/file1.xml
быть sub1/file1.xml
в zip архиве, пути должны быть идентичный.
Обходной путь — воссоздать деревья и файлы, которые вы хотите обновить:
mkdir sub1
ln main/zip/folder_1/file1.xml sub1/
zip -rum zip_file1.zip sub1/
или
ln -s main/zip/folder_1/ sub1
zip -ru zip_file1.zip sub1/
rm -f sub1
Какой из них лучше, зависит от вашего контекста:
используйте первый код для обновления только нескольких избранных файлов main/zip/folder_1/
используйте второй код для обновления всех файлов и каталогов в main/zip/folder_1/
да, это правда - решение заключалось в создании того же дерева папок и использовании этого простого кода
zip -u file_zip1.zip ./file_zip1/sub1/file1.xml