Có lệnh nào so sánh hình ảnh đĩa mềm (ví dụ: tệp .iso) với nội dung thực tế của đĩa mềm mà hình ảnh được ghi trên (vd / dev / fd0) không?
Có lệnh nào so sánh hình ảnh đĩa mềm (ví dụ: tệp .iso) với nội dung thực tế của đĩa mềm mà hình ảnh được ghi trên (vd / dev / fd0) không?
Câu trả lời:
Một tập tin thiết bị đĩa mềm là một tập tin. Bất kỳ lệnh nào đọc tệp sẽ làm việc trên nó.
cmp /dev/fd0 image.fat
Vượt qua -l
tùy chọn nếu bạn muốn một danh sách tất cả các byte khác nhau; đối với tiêu dùng của con người, điều này chủ yếu hữu ích ở dạng
cmp -l /dev/fd0 image.fat | wc -l
để biết có bao nhiêu byte khác nhau. Chạy cmp -s /dev/fd0 image.fat
nếu bạn không muốn bất kỳ đầu ra nào, chỉ là trạng thái trả về 0 nếu hai tệp giống nhau và 1 nếu chúng khác nhau.
Điều này so sánh các hình ảnh byte theo byte. Nếu đĩa mềm và hình ảnh chứa các tệp và bạn chỉ muốn so sánh các tệp chứ không phải siêu dữ liệu (ngày tệp, v.v.) cũng như không gian trống, hãy gắn đĩa mềm và hình ảnh và so sánh các cây thư mục.
Tôi không có đĩa mềm để kiểm tra nữa, nhưng tôi đoán:
diff <( dd if=/dev/fd0 ) floppy.img
các <( dd ..... )
lần đọc các nội dung của đĩa mềm và hành động như thể nó là một tập tin vào diff
. Sau đó diff so sánh nó với tập tin.
cmp
là một thay thế thả trong cho diff
trường hợp cụ thể này. Kudos đến Gilles cho cmp
gợi ý.
<(dd if=dev/fd0) is an awfully complicated way of writing
/ dev / fd0 . Are you sure you didn't mean to write
diff <(cat / dev / fd0 | dd if = - | tee / dev / fd / 3 3> & 1 | tr az az | tail -n +1) floppy.img ? And on top of that
diff` có xu hướng không đối phó với nhị phân dữ liệu tốt, cmp
là công cụ phù hợp ở đây.
<( dd if=/dev/fd0 )
. Nhưng OK, bạn đã đưa ra quan điểm của mình; Tôi chỉ không chắc chắn nếu một đồng bằng /dev/fd0
sẽ đọc từ thiết bị chứ không phải kiểm tra nút thiết bị. Đó là lý do tại sao tôi thêm ma thuật đen <( ... )
.
<(...)
-magic; o)