Cómo usar md5sum para sum de comprobación con un file md5 que no contiene el nombre de file

Tengo 2 files test.txt y test.txt.md5. Me gustaría verificar la sum de comprobación de test.txt.

La herramienta gnu md5sum requiere un file md5 con el siguiente formatting "[md5-hash] [espacio] [espacio] [nombre de file]" (md5sum -c test.txt.md5). Desafortunadamente, mi test.txt.md5 solo contiene el hash md5 (sin los espacios y el nombre de file).

¿Cómo puedo pasar el hash del file "test.txt.md5" al command "md5sum -c"? Supongo que tengo que usar la input estándar, sin embargo, todos los ejemplos que he visto intentan recrear el formatting de file md5sum

El contenido de los files es:

test.txt :

 test 

y test.txt.md5 :

 d8e8fca2dc0f896fd7cb4cb0031ba249 

Solutions Collecting From Web of "Cómo usar md5sum para sum de comprobación con un file md5 que no contiene el nombre de file"

Al igual que muchos commands, md5sum tiene la capacidad de leer desde la input estándar si el valor de una opción es - (desde man md5sum ):

Imprima o compruebe las sums de comprobación MD5 (128 bits). Sin ARCHIVO, o cuando ARCHIVO es -, lea la input estándar .

Como conoce el nombre del file, puede simplemente imprimir el contenido de su file md5, un par de espacios y luego el nombre y pasarlo a md5sum :

 $ cat test.txt.md5 5a6d311c0d8f6d1dd03c1c129061d3b1 $ md5sum -c <(printf "%s test.txt\n" $(cat test.txt.md5)) test.txt: OK 

Otra opción sería agregar el nombre del file a su file:

 $ sed -i 's/$/ test.txt/' test.txt.md5 $ md5sum -c test.txt.md5 test.txt: OK 

Puede volver a calcular la sum de comprobación MD5 de su file y compararla con la almacenada en test.txt.md5 :

 cmp test.txt.md5 <(md5sum test.txt | cut -d\ -f1) 

Si no hay salida, las sums de comprobación coinciden.