Depois de baixar um arquivo que tem uma soma de verificação md5 disponível, eu o verifico atualmente com
md5 *file* | grep *given_checksum*
ex.
md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2
mas me pareceu engraçado requerer o grep e o pipe para o que certamente é uma tarefa muito comum. Um defensor de fazer as coisas com eficiência, gostaria de saber se há uma maneira melhor de fazer isso?
Comentários
Resposta
md5sum
tem uma -c
opção para verificar um conjunto existente de somas e seus o status de saída indica sucesso / falha.
Exemplo:
$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK
Encontre um bom recurso aqui
Comentários
- Obrigado. Apenas para completar, agora uso
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
que parece mais limpo do que envolvendo grep! - hmm, não há muita melhoria para o arquivo $ md5 original | grep given_checksum e se quiser usar uma string que não faz distinção entre maiúsculas e minúsculas, você deve ficar com grep -i
- Eu estava recebendo
no properly formatted MD5 checksum lines found
quando estava usandomd5sum -c <file.md5> <file>
, mas este comando funcionou para mim.
Resposta
A forma usual de bash seria:
shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Resposta
md5sum -c <filename>.zip.md5 <filename>.zip
Isso dirá a você Ok se eles forem iguais.
Isso funciona com o tar também.
Resposta
Inspirado pela resposta de psusi “s
echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c -
Usei cut
porque nem todos os md5
são armazenados da mesma maneira. Exemplo
md5
? De qual pacote ele vem?