Dopo aver scaricato un file con un checksum md5 disponibile, attualmente lo controllo con
md5 *file* | grep *given_checksum*
eg
md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2
ma mi è sembrato divertente richiedere grep e pipe per quello che è sicuramente un compito molto comune. Appassionato di fare le cose in modo efficiente, mi chiedevo che ci fosse un modo migliore per farlo?
Commenti
Risposta
md5sum
ha unopzione -c
per controllare un insieme di somme esistente e il relativo lo stato di uscita indica successo / fallimento.
Esempio:
$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK
Trova una bella risorsa qui
Commenti
- Grazie. Solo per il completamento, ora uso
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
che sembra più pulito rispetto al coinvolgimento di grep! - hmm, non molti miglioramenti al file $ md5 originale | grep given_checksum e se vuoi usare una stringa senza distinzione tra maiuscole e minuscole devi restare con grep -i
- Stavo ottenendo
no properly formatted MD5 checksum lines found
quando ho utilizzavamd5sum -c <file.md5> <file>
ma questo comando ha funzionato per me.
Risposta
Il solito modo bash sarebbe:
shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]]
Risposta
md5sum -c <filename>.zip.md5 <filename>.zip
Questo ti dirà Ok se sono la stessa cosa.
Funziona anche con tar.
Risposta
Ispirato dalla risposta di psusi
echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c -
Ho utilizzato cut
perché non tutti i md5
sono memorizzati nello stesso modo. Esempio
md5
? Da quale pacchetto proviene?