Как проверить, является ли Unix .tar.gz файл правильным файлом без распаковки?

Я нашел вопрос, Как определить, являются ли данные допустимым файлом tar без файла?, но я задавался вопросом: существует ли готовое решение для командной строки?

99
задан Benjamin W. 4 September 2018 в 17:39
поделиться

2 ответа

А как насчет того, чтобы просто получить список тарбола и выбросить вывод, а не распаковывать файл?

tar -tzf my_tar.tar.gz >/dev/null

Редактировано согласно комментарию. Спасибо zrajm!

Редактирование согласно комментарию. Спасибо Frozen Flame! Этот тест ни в коем случае не подразумевает целостность данных. Потому что он был разработан как ленточная утилита для архивирования, большинство реализаций tar позволит сделать несколько копий одного и того же файла!

.
111
ответ дан 24 November 2019 в 04:59
поделиться

для проверки целостности файлов можно воспользоваться опцией 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-файл не поврежден:

gunzip -t file.tar.gz

Для проверки того, что tar-файл внутри не поврежден:

gunzip -c file.tar.gz | tar t > /dev/null

В рамках резервного копирования вы, вероятно, можете просто выполнить последнюю команду и проверьте значение $? после этого на 0 (успех). Если смола или у цыганки есть проблема, $? будет не нулевое значение.

92
ответ дан 24 November 2019 в 04:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: