Как я могу проверить правильность файла gz, у меня нет хэша файла, который я использую, gzip -t
но он не возвращает никакого вывода.
Спасибо
Команда 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
архивом, но и что его содержимое соответствует ожидаемому вами. быть.
gzip -t
не имеет никакого вывода, кроме кода возврата, если это правильный сжатый GZIP-файл.
Он возвращает ошибку, только если вы пытаетесь сделать это с файлом, не сжатым GZIP:
steamsrv@leviathan:~$ gzip -t commands.txt
gzip: commands.txt: not in gzip format
Вывод: Ваш файл почти наверняка является сжатым GZIP-файлом. То, что я не могу сказать вам, является ли это точным файлом, который, как вы думаете, должен быть, и для этого полезен хеш ...