Po pobraniu pliku, który ma dostępną sumę kontrolną md5, obecnie sprawdzam go za pomocą
md5 *file* | grep *given_checksum*
np.
md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2
ale wydawało mi się zabawne, gdy wymagałem grepa i fajki do tego, co z pewnością jest bardzo powszechnym zadaniem. Jako specjalista od wydajnego robienia rzeczy, zastanawiałem się, czy jest lepszy sposób na zrobienie tego?
Komentarze
Odpowiedź
md5sum
ma opcję -c
umożliwiającą sprawdzenie istniejącego zestawu sum i jego status wyjścia wskazuje na sukces / niepowodzenie.
Przykład:
$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK
Znajdź fajny zasób tutaj
Komentarze
- Dziękujemy. Na koniec używam teraz
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
, co wydaje się czystsze niż użycie grepa! - hmm, niewiele ulepszyliśmy oryginalnego pliku $ md5 | grep dana_suma kontrolna i jeśli chcesz użyć łańcucha bez rozróżniania wielkości liter, musisz trzymać się grep -i
- Otrzymywałem
no properly formatted MD5 checksum lines found
, używałmd5sum -c <file.md5> <file>
, ale to polecenie zadziałało.
Odpowiedź
Zwykła metoda basha wyglądałaby tak:
shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Odpowiedź
md5sum -c <filename>.zip.md5 <filename>.zip
To powie ci OK, jeśli są takie same.
Działa to również z tar.
Odpowiedź
Zainspirowany odpowiedzią psusi
echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c -
Użyłem cut
, ponieważ nie wszystkie md5
są przechowywane w ten sam sposób. Przykład
md5
? Z jakiego pakietu to pochodzi?