Wie lade ich ein Bild mit wget herunter und speichere es mit dem MD5-Hash als Namen?

Wie lade ich ein Bild mit wget herunter und speichere es mit dem MD5-Hash als Namen?

Wie kann ich mithilfe von wget ein Bild herunterladen, einen MD5-Hash für das Bild erstellen und das Bild mit dem MD5-Hash als Namen in einem Verzeichnis speichern?

# 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

Antwort1

Das geht auf verschiedene Arten. Ein kleines Skript hilft dabei. Es kann mit aufgerufen werden /bin/bash myscript.sh http://yourhost/yourimage.ext where_to_save. Das Zielverzeichnis ist optional:

#!/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

Der Befehl dirnameentfernt die letzte Komponente aus dem Dateinamen und der Befehl basenameentfernt Verzeichnis und Suffix aus den Dateinamen.

Sie können die Datei auch direkt von wget im Zielverzeichnis speichern und anschließend die MD5-Summe berechnen und umbenennen. In diesem Fall müssen Sie verwenden wget From_where/what.jpg -O destpath. Beachten Sie, dass es sich um ein großes o Ound nicht um eine Null handelt.

Antwort2

Das ist für wget etwas kompliziert, da sein einziger Zweck darin besteht, Dinge aus dem Internet zu ziehen. Sie müssen die Dinge wahrscheinlich ein wenig umstellen.

$ 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

Da es etwas lästig ist, immer Copypasta zu verwenden, können Sie einfach ein Shell-Skript erstellen und es mit "./fetch.sh" aufrufen.http://example.com/bild.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}

Ich habe eine schnelle Änderung vorgenommen, damit das oben genannte für alle Dateitypen funktioniert, nicht nur für JPG.

verwandte Informationen