僕はGoogleで癒し画像を収集するのが趣味なのですが、ネット上からダウンロードした画像をそのまま保存すると、ファイル名が被ってしまうことがあります。
また、同じ画像でもサイトによってファイル名が違う場合、中身が同じファイルを重複して保存してしまうかもしれません。
そこで、Macでダウンロードした画像のファイル名を、自動でMD5ハッシュ値にリネームして重複を防ぐことにしました。
Automatorでワークフローを作成
MacにはAutomatorというオートメーションツールがあるので、それを使います。
Automatorでワークフローを新規作成する際、フォルダアクションを選択します。
フォルダアクションでは、指定したフォルダに項目が追加された際に任意のアクションを実行することができます。
Automatorには様々なアクションが用意されており、たいていのことはそれらを組み合わせるだけで行えるのですが、流石にMD5ハッシュ値の計算はできないようなのでシェルスクリプトを書きます(エンジニアの強み)。
# 出力ディレクトリ名 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/[ハッシュ値].[拡張子]
に移動しています。
参考リンク
- ファイル名をMD5ハッシュ値にし、ファイルの重複を防止するやつ – dyama's page
- 同じファイルを同じファイル名で保存する仕組み : まだプログラマーですが何か?
- ファイルチェックサムの取得コマンドまとめ - auientが調べたこと
- 作者: 松苗あけみ
- 出版社/メーカー: オフィス漫
- 発売日: 2016/04/11
- メディア: Kindle版
- この商品を含むブログを見る