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 

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.