macOSでファイルのタイムスタンプを変更する

写真編集ソフトから出力した画像ファイルのタイムスタンプ(作成/更新日時)を出力(エクスポート)した時刻では無く,撮影時刻へと変更したいことが度々あった. その度にコマンドを忘れていたので以下に使い方をまとめる. いずれも2017年7月31日21時45分30秒へ変更している.

作成日時変更

setfile -d '07/31/2017 21:45:30' awesomePicture.jpg

更新日時変更

setfile -m '07/31/2017 21:45:30' awesomePicture.jpg 更新日時を変更すると"最後に開いた日付"もその日時へと変更された. setfileコマンドはmacOSのみで利用できるコマンドのようだった. Linuxでは更新日時の変更にはtouchコマンドを用いる(このコマンドで作成日時の変更は出来ない). ちなみに,他のファイルのタイムスタンプを別のファイルへとコピー出来る便利な機能がtouchコマンドには備わっている.

touchコマンドでタイムスタンプをコピる

touch -r oldPicture.jpg newPicture.jpg -rはReference(参照)の頭文字を取ったオプション.
macOS Sierraで動作を確認するとoldPicture.jpgの更新日時が,newPicture.jpgの作成日時と更新日時になっていた. 作成日時がコピーされない点は不思議に思ったが,おそらくLinuxならば別の挙動を示すのだろう. この辺りは調べていないので分からない. 何か進展があれば追記しようと思う.
6528140612738427907 http://www.storange.jp/2017/08/macos.html http://www.storange.jp/2017/08/macos.html macOSでファイルのタイムスタンプを変更する 2017-08-04T12:01:00+09:00 http://www.storange.jp/2017/08/macos.html Hideyuki Tabata 200 200 72 72