如何檢查 gz 檔案的有效性,我沒有檔案的雜湊值,我正在使用,gzip -t
但它沒有返回任何輸出。
答案1
此gzip -t
指令僅向 shell 傳回退出程式碼,說明檔案是否通過了完整性測試。
範例(在腳本中):
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 壓縮檔。我無法告訴您的是它是否是您認為應該是的確切文件,這就是哈希的有用之處......