photorec で復旧したデジカメデータの整理に、JPEGのEXIFに埋め込まれた時刻情報を使って、ファイル名を付けなおした。 コマンド一発で、沢山のJPEGファイルの名前を時刻に基づく名前にリネームできる。
(最初は、photorecが保存したタイムスタンプ情報(mtime)からstatで時刻を抜いて、これをファイル名と一緒にリスト化して保存、次にrubyで軽くスクリプト組んで一行ずつmv -nコマンドを作成して、最後にこれを実行、というスクリプトを組んだ。でも、それってjheadコマンド一発で楽勝だった、、、。)
CentOS7では、jheadコマンドはEPELで入手できる。
jheadは、manを読めばわかる通り、JPEGのEXIF情報を操作(余計なEXIF情報の消去やファイル埋め込みサムネイル画像の再作成等も)するコマンド。
タイムスタンプ回りで便利そうなのは、 -ft オプションと -n オプション。
-ftは、ファイルのタイムスタンプをEXIF情報から拾って上書き。
-nは、指定したフォーマットの時刻情報で、ファイル名をリネーム。シェルのワイルドカードで、複数ファイルを指定できる。
例えば、
$ jhead -n%Y-%m-%d-%H%M%S hoge.JPG
とすると、hoge.JPG が 2017-12-30-112321.jpg とかに変わる。ワイルドカードとかも使えて超便利だった。
ただ、間違えたオプションを指定すると容赦なくファイルが消えたりするので、作業するときは何をしようとしているかよく考えてからやってくださいませ。特に、秒単位まで同じ時刻のファイルをリネームするとどうなるか試していません。(manによると、 a,b,c… が末尾に補われるようですが、、、。)