Пакетный скрипт для перемещения файлов в zip

#bash #unix #recursion #zip #directory

#удар #unix #рекурсия #застежка — молния #каталог #bash

Вопрос:

Кто-нибудь может указать мне правильное направление для написания пакетного скрипта для оболочки UNIX для перемещения файлов в zip по одному за раз, а затем удаления оригинала.

Я не могу использовать стандартную функцию zip, потому что у меня недостаточно места для размещения создаваемого zip-файла.

Так что любые предложения, пожалуйста

Ответ №1:

Попробуйте это:

 zip -r -m source.zip *
  

Комментарии:

1. Я уже пробовал что-то подобное, из документов «»» -m Переместить указанные файлы в zip-архив; фактически, это удаляет целевые каталоги / файлы после создания указанного zip-архива. Если каталог становится пустым после удаления файлов, каталог также удаляется. Никакие удаления не выполняются, пока zip не создаст архив без ошибок. Это полезно для экономии дискового пространства, но потенциально опасно, поэтому рекомендуется использовать его в сочетании с -T для проверки архива перед удалением всех входных файлов. «»»

Ответ №2:

Не лучшее решение, но простое. В итоге я нашел скрипт на python, который рекурсивно архивирует папку, и просто добавил строку для удаления файла после его добавления в zip

Ответ №3:

Вы можете достичь этого, используя find как

 find . -type f -print0 | xargs -0 -n1 zip -m archive
  

Это переместит каждый файл в zip, сохранив структуру каталогов. После этого вы остаетесь с пустыми каталогами, которые вы можете легко удалить. Более того, использование find дает вам большую свободу в выборе файлов, которые вы хотите сжать.

Ответ №4:

Я использую :

 zip --move destination.zip src_file1 src_file2
  

Вот подробная информация о опции «—move» со страниц руководства

—переместить

Переместите указанные файлы в zip-архив; фактически, это приведет к удалению целевых каталогов / файлов после создания указанного zip-архива. Если каталог становится пустым после удаления файлов, каталог также удаляется. Никакие удаления не выполняются, пока zip не создаст архив без ошибок. Это полезно для экономии места на диске, но потенциально опасно, поэтому рекомендуется использовать его в сочетании с -T для тестирования архива перед удалением всех входных файлов.

Комментарии:

1. Это то же самое, что и ответ выше, и имеет ту же проблему, когда удаление происходит только после того, как zip-файл был полностью создан.