檢查gz文件的有效性

檢查gz文件的有效性

如何檢查 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 壓縮檔。我無法告訴您的是它是否是您認為應該是的確切文件,這就是哈希的有用之處......

相關內容