Bash получает MD5 файла онлайн

Я должен получить хеш MD5 файла онлайн и затем сравнить его с файлом на локальной машине.

Как я могу сделать это в ударе?

2
задан 15 October 2015 в 15:41

5 ответов

Вы можете использовать curl, чтобы принести файл онлайн:

curl -sL http://www.your.fi/le | md5sum | cut -d ' ' -f 1

, Чтобы выдержать сравнение с другим, сохраните в варе и затем продолжиться:

online_md5="$(curl -sL http://www.your.fi/le | md5sum | cut -d ' ' -f 1)"
local_md5="$(md5sum "$file" | cut -d ' ' -f 1)"

if [ "$online_md5" == "$local_md5" ]; then
    echo "hurray, they are equal!"
fi
2
ответ дан 2 December 2019 в 01:58

wget может загрузить на стандартную продукцию с -O-.

 wget http://example.com/some-file.html -O- \
     | md5sum \
     | cut -f1 -d' ' \
     | diff - <(md5sum local-file.html | cut -f1 -d' ')

md5sum прилагает имя файла после MD5, Вы можете удалить его с cut.

1
ответ дан 2 December 2019 в 01:58
 wget -q -O- http://example.com/your_file | md5sum | sed 's:-$:local_file:' | md5sum -c

Заменяют http://example.com/your_file URL Вашего файла онлайн и local_file с названием Вашего местного файла

1
ответ дан 2 December 2019 в 01:58

Вы могли также просто сделать это непосредственно. Используйте wget или curl, чтобы напечатать содержание отдаленного файла и также напечатать содержание местного файла. Пройдите и к md5sum и сравните продукцию:

$ md5sum <(wget  http://www.exacmple.com/file -O- 2>/dev/null) <(cat localfile) 
733f328d8cff7dd89970ec34a70aa14f  /dev/fd/63
733f328d8cff7dd89970ec34a70aa14f  /dev/fd/62

первая линия будет отдаленным файлом md5sum, и вторым является местный житель.

1
ответ дан 2 December 2019 в 01:58

Через wget и md5sum и awk как длинная острота =)

awk 'FNR == NR {a[0]=$1; next} {if (a[0]==$1) {print "match"; exit} {print "no match"}}'\
 <(wget -O- -q URL | md5sum)\
 <(md5sum local_file)
<час>

Пример

$ awk 'FNR == NR {a[0]=$1; next} {if (a[0]==$1) {print "match"; exit} {print "no match"}}' <(wget -O- -q http://security.ubuntu.com/ubuntu/pool/main/h/hunspell/libhunspell-1.2-0_1.2.8-6ubuntu1_i386.deb | md5sum) <(md5sum libhunspell-1.2-0_1.2.8-6ubuntu1_i386.deb)
match

$ awk 'FNR == NR {a[0]=$1; next} {if (a[0]==$1) {print "match"; exit} {print "no match"}}' <(wget -O- -q http://security.ubuntu.com/ubuntu/pool/main/h/hunspell/libhunspell-1.2-0_1.2.8-6ubuntu1_i386.deb | md5sum) <(md5sum foo) 
no match
0
ответ дан 2 December 2019 в 01:58

Другие вопросы по тегам:

Похожие вопросы: