Команда unzip заканчивается успешно без разархивирования файла
Есть двойные сжатые файлы с расширением xxx.zip.gz
На gunzip - файл xxx.zip создан размером 0,25 ГБ
При распаковке после gunzip - расширение файла xxx.zip не меняется
Вывод распаковать:
Archive: xxx.zip
inflating: xxx.txt
также
echo $? shows 0
Итак, даже если команда zip выполнена успешно и файл остается с расширением zip, вам нужна помощь?
ОС - SunOS 5.10
1 ответ
Вы находите, что xxx.txt создается, верно?
unzip
а также gunzip
есть разные "философии" о работе с их архивом. gunzip
избавляется от .gz
файл, в то время как unzip
оставляет свой zip
файл на месте. Так что в вашем случае zip работает так, как задумано.
Я думаю, что лучшее, что вы можете сделать, это
unzip -q xxx.zip && /bin/rm xxx.zip
Это только удалит почтовый файл, если unzip
выходит без ошибок. -q
вариант делает unzip
тихо, так что вы не получите сообщения о статусе, которые вы включили выше.
редактировать
как вы и просили when zip file itself is +10 GB in size, then unzip does not succeed
Предполагая, что вы уверены, что на диске достаточно места для сохранения расширенного файла orig, трудно сказать. Насколько велик расширенный файл? Более 2 ГБ? Я полагаю, что SunOS5 имел ограничение на размер файла в 2 ГБ, что требовало добавления поддержки "большого файла" в ядро и утилиты. У меня больше нет доступа к Солнцу, поэтому я не могу подтвердить. Я думаю, вы найдете места, чтобы посмотреть apropos largefile
(при условии, что ваш $MANPATH
настроен правильно).
Но основной тест для сделал unzip
работать правильно будет что-то вроде
if unzip "${file}" ; then
echo "clean unzip for ${file}, deleting the archive file" >&2
/bin/rm "${file}"
else
echo "error running unzip for ${file}, archive file remains in place" >&2
fi
(Или я не понимаю ваш вариант использования). Не стесняйтесь разместить еще один вопрос, показывающий ls -l xxx.zip.gz xxx.zip
и другие детали, чтобы помочь восстановить ожидаемый рабочий процесс.
IHTH.