Na het downloaden van een bestand dat een md5 checksum beschikbaar heeft, controleer ik het momenteel met
md5 *file* | grep *given_checksum*
bijv.
md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2
maar het leek me grappig om grep en de pipe nodig te hebben voor wat zeker een veel voorkomende taak is. Een voorstander om dingen efficiënt te doen, ik vroeg me af dat er een betere manier is om dit te doen?
Opmerkingen
Antwoord
md5sum
heeft een -c
optie om een bestaande set sommen te controleren, en de bijbehorende exit-status geeft succes / mislukking aan.
Voorbeeld:
$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK
Vind een leuke bron hier
Reacties
- Bedankt. Alleen voor de voltooiing gebruik ik nu
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
wat schoner lijkt dan het gebruik van grep! - hmm, niet veel verbetering ten opzichte van het originele $ md5 -bestand | grep given_checksum en als je hoofdletterongevoelige tekenreeks wilt gebruiken, moet je vasthouden aan grep -i
- Ik kreeg
no properly formatted MD5 checksum lines found
toen ik gebruiktemd5sum -c <file.md5> <file>
maar dit commando werkte voor mij.
Answer
De gebruikelijke bash-manier zou zijn:
shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Antwoord
md5sum -c <filename>.zip.md5 <filename>.zip
Dit zal je vertellen Ok als ze hetzelfde zijn.
Dit werkt ook met teer.
Antwoord
Geïnspireerd door psusi “s antwoord
echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c -
Ik heb cut
gebruikt omdat niet alle md5
op dezelfde manier worden opgeslagen. Voorbeeld
md5
? Uit welk pakket komt het?