Por exemplo, eu tenho um arquivo chamado test_binary
.
A soma MD5 do teste de arquivo é ef7ab26f9a3b2cbd35aa3e7e69aad86c
Para testá-lo, execute automaticamente:
$ md5sum -c <<<"ef7ab26f9a3b2cbd35aa3e7e69aad86c *path/to/file/test_binary"
test_binary: OK
ou
$ echo "595f44fec1e92a71d3e9e77456ba80d1 filetohashA.txt" | md5sum -c -
Citação de man
-c, --check
read MD5 sums from the FILEs and check them
Citações do wiki
Nota: Deve haver dois espaços entre cada valor md5sum e nome do arquivo para serem comparados. Caso contrário, o seguinte erro resultará: "nenhuma linha de soma de verificação MD5 formatada corretamente encontrada".
Link para wiki
Além disso, você pode apenas ler os hashes MD5 do arquivo
$ md5sum -c md5sum_formatted_file.txt
Está esperando arquivo com formato:
<md5sum_checksum><space><space><file_name>
Sobre *
e <space>
após o hash da soma MD5. Há pouca nota no homem:
When checking, the
input should be a former output of this program. The default mode is
to print a line with checksum, a character indicating input mode ('*'
for binary, space for text), and name for each FILE.
E aqui está o link para o stackoverflow, onde encontrei a resposta na pergunta, por que, às vezes, devemos distinguir binary
arquivos e text
arquivos.
*
, but wiki said that it should be two spaces. I will search...*
para responderUma possibilidade é usar o utilitário cfv
O CFV suporta muitos tipos de hashes e testes e criação de arquivos hash.
fonte
Sim, o asterisco
*
é necessário para este comando. Dê uma olhada neste exemplo.Este é o arquivo binário, e digamos que o valor correto do md5sum seja
exampleofcorrectmd5value00000000
(32 caracteres hexadecimais)Se o valor md5sum corresponder ao arquivo binário, você obterá esta saída
E é aí que o valor md5sum não corresponde
Sem asterisco
*
, você receberá a seguinte mensagem de erro, mesmo que o valor md5 esteja corretoAlém disso, você receberá a mesma mensagem de erro se o md5sum não tiver 32 caracteres hexadecimais. Neste exemplo, ele possui apenas 31 caracteres.
Solução para muitos arquivos
Se você possui muitos arquivos e deseja automatizar o processo, siga estas etapas:
Gere md5sum para cada arquivo e salve-o em md5sum.txt
Para verificar md5sum para todos os arquivos, use o seguinte comando.
Este é um exemplo se o valor md5sum não corresponder ao arquivo. Nesse caso, vou modificar o
file-b
conteúdoVeja, esta é a mensagem de erro. Espero que isto ajude.
fonte