Có bất kỳ giải pháp chung nào để kiểm tra xem một tập tin có bị hỏng hay không? Ví dụ: cho dù một tệp video là xấu, hoặc một tệp nén bị hỏng, v.v.
echo "P = NP" >is-this-corrupt.txt
:)
Có bất kỳ giải pháp chung nào để kiểm tra xem một tập tin có bị hỏng hay không? Ví dụ: cho dù một tệp video là xấu, hoặc một tệp nén bị hỏng, v.v.
echo "P = NP" >is-this-corrupt.txt
:)
Câu trả lời:
Không, không có bất kỳ giải pháp chung nào. Cách duy nhất để kiểm tra xem một tập tin có bị hỏng hay không là thử và đọc nó; chỉ phần mềm biết cách đọc định dạng cụ thể đó mới có thể làm điều đó.
Những gì bạn có thể làm là sử dụng file
để xác định loại tệp và sau đó sử dụng loại để chọn một chương trình thích hợp để kiểm tra tệp. Bạn có thể viết một kịch bản như thế này:
# /bin/bash -eu
FILENAME=$1
FILETYPE="$(file -b $FILENAME | head -1 | cut -d , -f 1)"
case "$FILETYPE" in
"gzip compressed data") CHECKER="gunzip -t" ;;
# many, many more lines here
*) echo "Unknown type: $FILETYPE"; exit 1 ;;
esac
$CHECKER $FILENAME
Nhưng bạn có rất nhiều việc phải làm để điền vào tuyên bố trường hợp.
Có thể ai đó đã viết một kịch bản (hoặc chương trình) như vậy, nhưng tôi không biết gì về nó.
grep
, cat
, tar
...). Do đó, giải pháp của bạn là rất lớn.
cat
hoặc bất kỳ chương trình nào khác xử lý tệp hoàn toàn dưới dạng luồng byte không cấu trúc để kiểm tra tham nhũng. Tôi không tin rằng giải pháp của tôi là cồng kềnh.
Nếu bạn biết rằng tại thời điểm nào đó tệp tốt, bạn có thể kiểm tra lại và sử dụng nó để so sánh sau để đảm bảo rằng nó vẫn còn nguyên. Điều này rất hữu ích trước khi truyền tệp giữa các phương tiện hoặc trên các mạng.
Nếu bạn không biết về trạng thái tốt của tệp, thì không có cách phổ biến hay kiểm tra tham nhũng. Chỉ định dạng tệp cụ thể trong từng trường hợp xác định dữ liệu bị hỏng hoặc không bị hỏng.
Nếu bạn tình cờ sử dụng ZFS, bạn có thể đọc tệp và nó được đảm bảo không bị hỏng hoặc bạn gặp lỗi đọc và đó là lỗi.
Chỉnh sửa Sau khi nhận xét khôn ngoan, đây là một câu trả lời rõ ràng của tôi:
ZFS có thể bảo vệ và phát hiện chống tham nhũng dữ liệu im lặng. ví dụ: http://www.zdnet.com/blog/storage/data-corruption-is-worse-than-you-know/191 Tất nhiên nếu các tập tin đã được hỏng lúc nó ban đầu được viết, không có gì là hệ thống tập tin có thể làm.
Để bảo vệ chống tham nhũng sẽ xảy ra trong quá trình truyền tệp, các kỹ thuật mục đích chung thông thường là md5sum hoặc băm tương tự.