ムニエルブログ

江戸川区在住のアプリケーションエンジニア。千葉工業大学卒。Apple信者。趣味は読書とプログラミング。Java/HTML/CSS/Sass/JavaScript/jQuery/Vue/GAS BTC:18i4i1Y1Kw2xdB6aHvB62WCWXiULqcqnAd

Macでダウンロードした画像のファイル名を、自動でMD5ハッシュ値にリネームして重複を防ぐ

f:id:munieru_jp:20180311201831p:plain

僕はGoogleで癒し画像を収集するのが趣味なのですが、ネット上からダウンロードした画像をそのまま保存すると、ファイル名が被ってしまうことがあります。
また、同じ画像でもサイトによってファイル名が違う場合、中身が同じファイルを重複して保存してしまうかもしれません。
そこで、Macでダウンロードした画像のファイル名を、自動でMD5ハッシュ値にリネームして重複を防ぐことにしました。

Automatorでワークフローを作成

MacにはAutomatorというオートメーションツールがあるので、それを使います。

f:id:munieru_jp:20180311222631p:plain

Automatorでワークフローを新規作成する際、フォルダアクションを選択します。
フォルダアクションでは、指定したフォルダに項目が追加された際に任意のアクションを実行することができます。
Automatorには様々なアクションが用意されており、たいていのことはそれらを組み合わせるだけで行えるのですが、流石にMD5ハッシュ値の計算はできないようなのでシェルスクリプトを書きます(エンジニアの強み)。

f:id:munieru_jp:20180312235941p:plain

# 出力ディレクトリ名
OUTPUT_DIR_NAME=MD5

for filePath in "$@"
do
  dir=${filePath%/*}
  outputDir=${dir}/${OUTPUT_DIR_NAME}

  # 出力ディレクトリを作成
  if [ ! -e $outputDir ]; then
    mkdir $outputDir
  fi

  # MD5ハッシュ値を計算
  hash=$(md5 -r "${filePath}" | cut -c -32)

  extension=${filePath##*.}
  mv "${filePath}" "${outputDir}/${hash}.${extension}"
done

MacでMD5ハッシュ値を計算する方法は色々ありますが、無難にmd5コマンドを使用しました。

動作例

/Users/Mac/Downloads/RenameMD5にファイルを保存すると、自動的に/Users/Mac/Downloads/RenameMD5/MD5/[ハッシュ値].[拡張子]に移動しています。

参考リンク


HUSH!(1)

HUSH!(1)