Как скачать изображение с помощью wget и сохранить его с хэшем md5 в качестве имени?

4980
TheGrayFox

Как я могу загрузить изображение, хэшировать его в md5 и сохранить это изображение с хэшем md5 в качестве имени в каталоге, используя wget?

# An example of the image link... http://31.media.tumblr.com/e1b8907c78b46099fd9611c2ab4b69ef/tumblr_n8rul3oJO91txb5tdo1_500.jpg  # Save the image linked with for name the MD5 hash  d494ba8ec8d4500cd28fbcecf38083ba.jpg  # Save the image with the new name to another directory  ~/Users/TheGrayFox/Images/d494ba8ec8d4500cd28fbcecf38083ba.jpg 
2

2 ответа на вопрос

1
Hastur

Вы можете сделать это по-разному. Небольшой сценарий поможет. Вы можете позвонить с помощью /bin/bash myscript.sh http://yourhost/yourimage.ext where_to_save. Каталог назначения является необязательным:

#!/bin/bash MyLink=$ DestDir=$ # fix destination directory MyPath=$(dirname $MyLink) # strip the dirname (Not used) MyFile=$(basename $MyLink) # strip the filename Extension="$" # strip the extension   wget $MyLink # get the file MyMd5=$(md5sum $MyFile | awk '') # calculate md5sum mv $MyFile $/$.$ # mv and rename the file echo $MyMd5 # print the md5sum if wanted 

Команда dirnameудаляет последний компонент из имени файла, а команда basenameудаляет каталог и суффикс из имен файлов.

Вы даже можете решить сохранить файл непосредственно из wget в каталоге назначения, а затем вычислить сумму md5 и переименовать ее. В этом случае вам нужно использовать wget From_where/what.jpg -O destpath. Примечание - это заглавная буква o, Oа не ноль.

Ценю объяснение, спасибо! Некоторые файлы изображений содержат расширения * .png. На Mac md5 эквивалентно нашей сумме md5. TheGrayFox 9 лет назад 0
0
Falsenames

Это немного сложно для wget, так как его единственная цель - просто извлечь что-то из интранет. Вам, вероятно, придется немного перемешать вещи.

$ wget -O tmp.jpg http://31.media.tumblr.com/e1b8907c78b46099fd9611c2ab4b69ef/tumblr_n8rul3oJO91txb5tdo1_500.jpg; mv tmp.jpg $(md5sum tmp.jpg | cut -d' ' -f1).jpg $ ls *jpg fdef5ed6533af93d712b92fa7bf98ed8.jpg 

Поскольку копировать пасту все время неприятно, вы можете просто создать сценарий оболочки и вызвать его с помощью "./fetch.sh http://example.com/image.jpg "

$ cat fetch.sh  #! /bin/bash  url=$1 ext=$ wget -O /tmp/tmp.fetch $url sum=$(md5sum /tmp/tmp.fetch | cut -d' ' -f1) mv /tmp/tmp.fetch $/Images/$.$ 

Я сделал быстрое редактирование, чтобы вышеуказанное работало для всех типов файлов, а не только для jpg.

Нет проблем. Если вы используете Mac, я не уверен на 100%, будет ли работать выше. Я мог только проверить это на Linux-коробке. Falsenames 9 лет назад 0