Use md5sum para verificar el archivo en un script

15

Quiero verificar un archivo usando md5sum -c file.md5. Puedo hacerlo a mano, pero no sé cómo verificar la validez de un script.

Robin
fuente

Respuestas:

25

Puede usar md5sumel estado de devolución:

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

Para hacer las cosas más limpias, puede agregar --statuspara decirle md5sum(tal vez solo la versión de GNU) que guarde silencio:

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

Los formularios más cortos funcionan igual de bien si corresponde:

md5sum --status -c file.md5 && echo OK
Stephen Kitt
fuente
md5sum --status -c file.md5 && echo OKlamentablemente no busca archivos extra o faltantes
Erik Martino
1
@Erik, ¿qué versión md5sumtienes? Con respecto a los archivos que faltan, en los sistemas que he verificado, md5sum --status -c file.md5 && echo OKfalla (y no imprime "OK") si file.md5falta un archivo listado . Con respecto a los archivos adicionales, md5sum -cnunca se queja de los archivos adicionales, solo verifica los archivos enumerados en el archivo de suma de verificación dado.
Stephen Kitt
1
md5sum --status -c file.md5 && echo OKcede md5sum: stat 'foo': No such file or directoryy OKen una Mac
Erik Martino