Kiểm tra tính hợp lệ của tệp gz


13

Làm cách nào tôi có thể kiểm tra tính hợp lệ của tệp gz, tôi không có hàm băm của tệp, tôi đang sử dụng gzip -tnhưng nó không trả về bất kỳ đầu ra nào.

Cảm ơn

Câu trả lời:


22

Các gzip -tlệnh chỉ trả lại một mã lối ra vào vỏ nói cho dù các tập tin thông qua các bài kiểm tra tính toàn vẹn hay không.

Ví dụ (trong một tập lệnh):

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

Thêm -vsẽ làm cho nó thực sự báo cáo kết quả với một tin nhắn.

Thí dụ:

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

Vì vậy, các tập tin là ok. Hãy làm hỏng tệp (bằng cách viết ký tự 0ở byte 40 trong tệp) và thử lại.

$ 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

Tính toàn vẹn của một tệp liên quan đến nén của nó không đảm bảo rằng nội dung tệp là những gì bạn tin là nó. Nếu bạn có một tổng kiểm MD5 (hoặc một số tổng kiểm tra tương tự) của tệp từ bất kỳ ai cung cấp, thì bạn có thể nhận được một xác nhận bổ sung rằng tệp không chỉ là một gzipkho lưu trữ hợp lệ , mà cả nội dung của nó là những gì bạn mong đợi được.


4

gzip -tkhông bất kỳ đầu ra nào, ngoài mã trả về, nếu đó là tệp nén gzip chính xác.

Nó chỉ trả về lỗi nếu bạn đang thử nó trên một cái gì đó không phải là tệp nén gzip:

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

gzip: commands.txt: not in gzip format

Kết luận: Tệp của bạn gần như chắc chắn là tệp nén gzip. Điều tôi không thể nói với bạn là liệu đó có phải là tệp chính xác mà bạn nghĩ nó là, đó là thứ băm sẽ hữu ích cho ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.