exivで画像名をEXIF日付/時刻に変更する場合は、次の操作を行います。
find . -iname \*jpg -exec exiv2 -v -t -r '%Y_%m_%d__%H_%M_%S' rename {} \;
これで、イメージのタイムスタンプはまったく同じになります(秒を含む)。ファイル名を自動的に一意にする方法は?
このコマンドは、同じディレクトリ構造で再度実行すると(新しい画像を追加した後)、名前が変更された画像が変更されないようにし、既存のファイル名で画像を追加した場合、新しいファイル名も一意である必要があるため、安定している必要があります。 。
私の最初の試みは、結果のファイル名に元のデフォルト名を保持することでしたが、上記の意味では、そのコマンドは安定していません。
ベストアンサー1
試してみたいかもしれませんjhead
代わりに、デフォルトで動作します(a
、b
...z
サフィックスを使用し、同じ日付の最大27ファイルを許可します)@meuhで言及された安定性の問題はありません。
find . -iname '*jpg' -exec jhead -n%Y_%m_%d__%H_%M_%S {} +
または、以下を使用しますexiftool
(マンページの例):
exiftool -ext jpg '-FileName<CreateDate' -d %Y_%m_%d__%H_%M_%S%%-c.%%e .
(ここに%-c
;;で始まる数字のサフィックスがあります。-
ファイルがすでに存在する場合は追加されます。)
(貢献された回答とコメントに基づいて修正):
元のファイル名を保持するには、以下を追加します_%%f
。
exiftool -ext jpg '-FileName<CreateDate' -d %Y_%m_%d__%H_%M_%S%%-c_%%f.%%e .