Een eenvoudigere manier om md5 checksum te vergelijken?

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

  • Wat voor soort tool is dat md5? Uit welk pakket komt het?
  • Ik ' realiseerde me niet dat het anders was totdat ik deze vraag stelde en de antwoorden begon te onderzoeken, maar ik ' m gebruikmakend van bash op OS X en het is ' s Apple ' s eigen tool die niet ' t hebben de -c optie. Blijkbaar zijn ze gestopt met het bundelen van md5sum in 10.5 … Ik ' heb nu de originele unix md5sum-tool geïnstalleerd.

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 gebruikte md5sum -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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *