Я нашел вопрос, как определить, являются ли данные действительным файлом tar без файла? , но мне было интересно: есть ли готовое решение для командной строки?
gzip
validation
tar
gunzip
недооценивать
источник
источник
-v
если вы просто подключаете вывод/dev/null
?-z
Опция также ненужная. Он ничего не делает в режиме извлечения или списка.-z
Это определенно относится к GNU tar - знаете ли вы, верно ли это в других местах (BSD и т. д.)?tar.gz
? Любая информация о поддержке?вы, вероятно, могли бы использовать параметр gzip -t для проверки целостности файлов
http://linux.about.com/od/commands/l/blcmdl1_gzip.htm
из: http://unix.ittoolbox.com/groups/technical-functional/shellscript-l/how-to-test-file-integrity-of-targz-1138880
Чтобы проверить, не поврежден ли файл gzip:
Чтобы проверить, не поврежден ли tar-файл внутри:
В рамках резервного копирования вы, вероятно, могли бы просто запустить последнюю команду и проверить значение $? затем для значения 0 (успех). Если есть проблема с tar или gzip, $? будет иметь ненулевое значение.
источник
bzip2 -t file.bz2
для файлов bz2.tar -t > /dev/null
(примечание:t
vs-t
)?Если вы хотите сделать настоящий тестовый извлечение файла tar без извлечения на диск, используйте параметр -O. Это выводит экстракт на стандартный вывод вместо файловой системы. Если файл tar поврежден, процесс будет прерван с ошибкой.
Пример неудачного теста на шарик смолы ...
Рабочий пример ...
источник
> /dev/null
для рабочего примера.Вы также можете проверить содержимое файла * .tag.gz с помощью
pigz
(parallel gzip), чтобы ускорить проверку архива:источник
Я пробовал следующую команду, и они хорошо работают.
Однако мы можем обнаружить, что эти две команды требуют много времени. Возможно, нам нужен более быстрый способ определить целостность сжатых файлов.
источник
Хороший вариант - использовать
tar -tvvf <filePath>
который добавляет строку, сообщающую о типе файла.Пример в действительном файле .tar:
Поврежденный файл .tar:
источник
Все это очень неоптимальные решения. Из спецификации GZIP
Должен быть закодирован на любом языке, который вы используете.
источник
Иногда да, а иногда нет. Давайте посмотрим на пример поврежденного файла:
Это показывает:
Даже если вы выполните
tar сказал, что ошибки не было:
но файл был поврежден, теперь в нем "Дурак" вместо "Пит".
источник