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 圧縮ファイルです。私がお伝えできないのは、それがあなたが想定している通りのファイルであるかどうかです。ハッシュは、その点に役立ちます...

関連情報