Periksa validitas file gz

13

Bagaimana saya dapat memeriksa validitas file gz, saya tidak memiliki hash file, saya menggunakan gzip -ttetapi tidak mengembalikan output apa pun.

Terima kasih

Noor
sumber

Jawaban:

22

The gzip -tperintah saja mengembalikan kode keluar ke shell mengatakan apakah file lulus uji integritas atau tidak.

Contoh (dalam skrip):

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

Menambahkan -vakan membuatnya benar-benar melaporkan hasilnya dengan pesan.

Contoh:

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

Jadi file tersebut ok. Mari kita korup file (dengan menulis karakter 0pada byte 40 di file) dan coba lagi.

$ 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

Integritas file sehubungan dengan kompresinya tidak menjamin bahwa konten file adalah apa yang Anda yakini. Jika Anda memiliki MD5 checksum (atau semacam checksum serupa) dari siapa pun yang menyediakannya, maka Anda akan dapat memperoleh konfirmasi tambahan bahwa file tersebut tidak hanya merupakan gziparsip yang valid , tetapi juga bahwa isinya adalah apa yang Anda harapkan. menjadi.

Kusalananda
sumber
4

gzip -ttidak memiliki output apa pun, selain kode pengembalian, jika itu adalah file terkompresi gzip yang benar.

Ini hanya mengembalikan kesalahan jika Anda mencobanya pada sesuatu yang bukan file terkompresi gzip:

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

gzip: commands.txt: not in gzip format

Kesimpulan: File Anda hampir pasti merupakan file terkompresi gzip. Apa yang tidak bisa saya katakan adalah apakah file itu persis seperti yang Anda pikir seharusnya, yang mana hash akan berguna untuk ...

Shadur
sumber