Comando Linux md5sum explicado para principiantes (5 ejemplos)
Al descargar archivos, particularmente al instalar archivos de sitios web, es bueno verificar que la descarga sea válida. Un sitio web a menudo mostrará un valor hash para cada archivo para asegurarse de que la descarga se complete correctamente. Este artículo discutirá la herramienta md5sum que puede usar para validar la descarga. Otras tres utilidades, sha1sum, sha256sum y sha512sum, funcionan de la misma manera que md5sum.
Comando Linux md5sum
El comando md5sum imprime una suma de verificación de 32 caracteres (128 bits) del archivo dado, utilizando el algoritmo MD5. La siguiente es la sintaxis de comandos de esta herramienta de línea de comandos:
md5sum [OPTION]... [FILE]...
Y así es como lo explica la página man de md5sum:
Print or check MD5 (128-bit) checksums.
Los siguientes ejemplos con estilo de preguntas y respuestas le darán una idea aún mejor del uso básico de md5sum.
Nota: Usaremos tres archivos llamados archivo1.txt, archivo2.txt y archivo3.txt como archivos de entrada en nuestros ejemplos. El texto de cada archivo se muestra a continuación.
archivo1.txt:
hi hello how are you thanks.
archivo2.txt:
hi hello to you I am fine Your welcome!
archivo3.txt:
hallo Guten Tag Wie geht es dir Danke.
Q1. ¿Cómo mostrar el valor hash?
Utilice el comando sin ninguna opción para mostrar el valor hash y el nombre del archivo.
md5sum file1.txt
Aquí está la salida que este comando produjo en nuestro sistema:
[Documents]$ md5sum file1.txt 1ff38cc592c4c5d0c8e3ca38be8f1eb1 file1.txt [Documents]$
La salida también se puede mostrar en un formato de estilo BSD usando la opción –tag.
md5sum --tag file1.txt
[Documents]$ md5sum --tag file1.txt MD5 (file1.txt) = 1ff38cc592c4c5d0c8e3ca38be8f1eb1 [Documents]$
Q2. ¿Cómo validar varios archivos?
El comando md5sum puede validar varios archivos a la vez. Agregaremos file2.txt y file3.txt para demostrar las capacidades.
Si escribe los hash en un archivo, puede usar ese archivo para verificar si alguno de los archivos ha cambiado. Aquí estamos escribiendo los valores hash de los archivos en los valores hash del archivo y luego los usamos para validar que ninguno de los archivos ha cambiado.
md5sum file1.txt file2.txt file3.txt > hashes md5sum --check hashes
[Documents]$ md5sum file1.txt file2.txt file3.txt > hashes [Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: OK [Documents]$
Ahora cambiaremos file3.txt, agregaremos un solo signo de exclamación al final del archivo y volveremos a ejecutar el comando.
echo "!" >> file3.txt md5sum --check hashes
[Documents]$ md5sum --check hashes file1.txt: OK file2.txt: OK file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
Puede ver que file3.txt ha cambiado.
Q3. ¿Cómo mostrar solo los archivos modificados?
Si tiene muchos archivos para revisar, es posible que desee mostrar solo los archivos que han cambiado. Usando la opción «–quiet», md5sum solo enumerará los archivos que han cambiado.
md5sum --quiet --check hashes
[Documents]$ md5sum --quiet --check hashes file3.txt: FAILED md5sum: WARNING: 1 computed checksum did NOT match [Documents]$
Q4. ¿Cómo detectar cambios en un script?
Es posible que desee utilizar md5sum en un script. Usando la opción «–status», md5sum no imprimirá ningún resultado. En su lugar, el código de estado devuelve 0 si no hay cambios y 1 si los archivos no coinciden. El siguiente script hashes.sh devolverá un 1 en el código de estado porque los archivos han cambiado. El archivo de script está a continuación:
sh hashes.sh
hashes.sh: #!/bin/bash md5sum --status --check hashes Result=$? echo "File check status is: $Result" exit $Result [Documents]$ sh hashes.sh File check status is: 1 [[email protected] Documents]$
P5. ¿Cómo identificar valores hash no válidos?
md5sum puede informarle si tiene hashes no válidos cuando compara archivos. Para advertirle si algún valor hash es incorrecto, puede usar la opción –warn. Para este último ejemplo, usaremos sed para insertar un carácter adicional al comienzo de la tercera línea. Esto cambiará el valor hash en los hash del archivo, haciéndolo inválido.
sed -i '3s/.*/a&/' hashes md5sum --warn --check hashes
Esto muestra que la tercera línea tiene un hash no válido.
[Documents]$ sed -i '3s/.*/a&/' hashes [Documents]$ md5sum --warn --check hashes file1.txt: OK file2.txt: OK md5sum: hashes: 3: improperly formatted MD5 checksum line md5sum: WARNING: 1 line is improperly formatted [Documents]$
Conclusión
md5sum es un comando simple que puede validar rápidamente uno o varios archivos para determinar si alguno de ellos ha cambiado con respecto al archivo original. Para obtener más información sobre md5sum, consulte su página de manual