Gunakan md5sum untuk memverifikasi file dalam skrip

15

Saya ingin memverifikasi file menggunakan md5sum -c file.md5. Saya dapat melakukannya dengan tangan, tetapi saya tidak tahu cara memeriksa validitas dalam skrip.

Robin
sumber

Jawaban:

25

Anda dapat menggunakan md5sumstatus pengembalian:

if md5sum -c file.md5; then
    # The MD5 sum matched
else
    # The MD5 sum didn't match
fi

Untuk membuat segalanya lebih bersih, Anda dapat menambahkan --statusuntuk memberi tahu md5sum(mungkin hanya versi GNU) untuk diam:

if md5sum --status -c file.md5; then
    # The MD5 sum matched
else
    # The MD5 sum didn't match
fi

Bentuk yang lebih pendek bekerja dengan baik jika sesuai:

md5sum --status -c file.md5 && echo OK
Stephen Kitt
sumber
md5sum --status -c file.md5 && echo OKsayangnya tidak memeriksa apakah ada file yang hilang atau ekstra
Erik Martino
1
@Erik versi apa md5sumyang Anda miliki? Mengenai file yang hilang, pada sistem saya telah memeriksa, md5sum --status -c file.md5 && echo OKgagal (dan tidak mencetak "OK") jika file yang tercantum dalam file.md5hilang. Mengenai file tambahan, md5sum -ctidak pernah mengeluh tentang file tambahan, itu hanya memeriksa file yang tercantum dalam file checksum yang diberikan.
Stephen Kitt
1
md5sum --status -c file.md5 && echo OKhasil md5sum: stat 'foo': No such file or directorydan OKpada mac
Erik Martino