Después de descargar un archivo que tiene una suma de verificación md5 disponible, actualmente lo verifico con
md5 *file* | grep *given_checksum*
eg
md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2
pero me pareció gracioso requerir grep y la tubería para lo que seguramente es una tarea muy común. Como riguroso por hacer las cosas de manera eficiente, me preguntaba si hay una mejor manera de hacerlo.
Comentarios
Respuesta
md5sum
tiene una opción -c
para verificar un conjunto de sumas existente y su el estado de salida indica éxito / fracaso.
Ejemplo:
$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK
Encuentre un buen recurso aquí
Comentarios
- Gracias. Solo para completar, ahora uso
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
¡que parece más limpio que usar grep! - hmm, no hay mucha mejora con respecto al archivo original $ md5 | grep given_checksum y si desea utilizar una cadena que no distinga entre mayúsculas y minúsculas, debe seguir con grep -i
- Estaba obteniendo
no properly formatted MD5 checksum lines found
cuando estaba usandomd5sum -c <file.md5> <file>
pero este comando funcionó para mí.
Responder
La forma habitual de bash sería:
shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Responder
md5sum -c <filename>.zip.md5 <filename>.zip
Esto te dirá Ok si son iguales.
Esto también funciona con tar.
Respuesta
Inspirado en la respuesta de psusi
echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c -
Usé cut
ya que no todos los md5
se almacenan de la misma manera. Ejemplo
md5
? ¿De qué paquete viene?