Когда-то давно существовала утилита CFAtest, которая неплохо с этим справлялась, но теперь она исчезла.
По сути, я ищу аналогичный инструмент (предпочтительно графический), который будет проходить по заданному пути (предпочтительно включая подпапки) и тестировать все найденные zip-файлы.
Хорошие возможности ведения журнала будут плюсом.
решение1
Найти каждый zip-файл в каждой подпапке
Это найдет во всех подпапках текущей папки ( .
) файлы ( -type f
) с расширением zip
(или ZIP
или Zip
или zIp
и т. д., регистр не учитывается, -iname
) и проверит их целостность (опция -t
) будучи тихим (опция -q
, вместе -tq
). Быть тихим означает: не перечислять содержимое zip-файла, а только сообщать о результатах теста.
find . -type f -iname '*.zip' -exec unzip -tq {} \;
Только текущая папка (без подпапок)
Если вы хотите проверить только файлы в текущем каталоге, а не в подпапках, используйте
unzip -tq '*.[Zz][Ii][Pp]'
в каталоге с zip-файлами. Также проверяется расширение файла ZIP
или Zip
или zIp
и т. д., регистр игнорируется.
решение2
В Windows я использую7zip: предоставляет графический пользовательский интерфейс, бесплатен и поддерживает широкий спектр форматов архивных файлов, включая zip.
Перейдите в папку, которую вы хотите проанализировать, в проводнике Windows. Найдите *.zip
, выберите все файлы, щелкните правой кнопкой мыши, выберите «Тестовый архив»
Затем подождите (обратите внимание, что explorer.exe потребуется около 10 минут, чтобы обработать 100 000 .zip-файлов, прежде чем 7z начнет тестирование):
решение3
Ответ Эрика не сработал у меня на Mac, но это работает для zip-файлов в текущей папке и всех подпапках:
find . -name '*.zip' -exec unzip -tq {} \;
Выводит это для каждого файла:
No errors detected in compressed data of ./2013-10-16.zip.
решение4
Возможно, это не совсем то, что вы просили, но есть инструмент под названием Zip2Fix.
Я им не пользовался, но вы можете скачать его здесь: