Проверить валидность файла gz

Проверить валидность файла gz

Как проверить действительность файла gz, у меня нет хеша файла, я его использую, gzip -tно он не возвращает никаких выходных данных.

решение1

Команда gzip -tвозвращает оболочке только код выхода, сообщающий, прошел ли файл проверку целостности или нет.

Пример (в сценарии):

if gzip -t file.gz; then
    echo 'file is ok'
else 
    echo 'file is corrupt'
fi

Добавление -vприведет к фактическому сообщению результата в виде сообщения.

Пример:

$ gzip -v -t file.gz
file.gz:        OK

Итак, файл в порядке. Давайте испортим файл (записав символ 0в байте 40 в файле) и попробуем снова.

$ dd seek=40 bs=1 count=1 of=file.gz <<<"0"
1+0 records in
1+0 records out
1 bytes transferred in 0.000 secs (2028 bytes/sec)
$ gzip -v -t file.gz
file.gz:        gzip: file.gz: Inappropriate file type or format

Целостность файла относительно его сжатия ненетгарантировать, что файлсодержанието, во что вы верите. Если у вас есть контрольная сумма MD5 (или какая-то подобная контрольная сумма) файла от того, кто ее предоставил, то вы сможете получить дополнительное подтверждение того, что файл не только является действительным gzipархивом, но и что его содержимое соответствует вашим ожиданиям.

решение2

gzip -tне делаетиметьлюбой вывод, кроме кода возврата, если это правильный сжатый gzip файл.

Он возвращает ошибку только в том случае, если вы пытаетесь применить его к чему-то, чтоне являетсясжатый gzip-файл:

steamsrv@leviathan:~$ gzip -t commands.txt

gzip: commands.txt: not in gzip format

Вывод: Ваш файл почти наверняка является сжатым файлом gzip. Чего я не могу сказать, так это то, является ли он тем самым файлом, которым, по вашему мнению, он должен быть, для чего и был бы полезен хэш...

Связанный контент