wget を使用してイメージをダウンロードし、md5 ハッシュを名前として保存するにはどうすればよいですか?

wget を使用してイメージをダウンロードし、md5 ハッシュを名前として保存するにはどうすればよいですか?

画像をダウンロードし、その画像を 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

答え1

さまざまな方法で実行できます。小さなスクリプトが役立ちます。 で呼び出すことができます /bin/bash myscript.sh http://yourhost/yourimage.ext where_to_save。宛先ディレクトリはオプションです。

#!/bin/bash
MyLink=${1}
DestDir=${2:-"~/Users/TheGrayFox/Images/"}   # fix destination directory
MyPath=$(dirname $MyLink)                    # strip the dirname  (Not used)
MyFile=$(basename $MyLink)                   # strip the filename
Extension="${MyFile##*.}"                    # strip the extension 

wget $MyLink                                 # get the file
MyMd5=$(md5sum $MyFile | awk '{print $1}')   # calculate md5sum
mv $MyFile  ${DestDir}/${MyMd5}.${Extension} # mv and rename the file
echo $MyMd5                                  # print the md5sum if wanted

このコマンドはdirnameファイル名から最後のコンポーネントを削除し、basenameファイル名からディレクトリとサフィックスを削除します。

wget からファイルを直接宛先ディレクトリに保存し、その後 md5sum を計算して名前を変更することもできます。この場合、 を使用する必要があります。はゼロではなくwget From_where/what.jpg -O destpath大文字の o であることに注意してください。O

答え2

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=${url##*.}
wget -O /tmp/tmp.fetch $url
sum=$(md5sum /tmp/tmp.fetch | cut -d' ' -f1)
mv /tmp/tmp.fetch ${HOME}/Images/${sum}.${ext}

上記の処理が jpg だけでなくすべてのファイル タイプで機能するように、簡単な編集を行いました。

関連情報