画像名をEXIF時間に変更:一意のファイル名を作成する

画像名をEXIF時間に変更:一意のファイル名を作成する

exivで画像名をEXIF日付/時刻に変更する場合は、次の操作を行います。

find . -iname \*jpg -exec exiv2 -v -t -r '%Y_%m_%d__%H_%M_%S' rename {} \;

これで、イメージのタイムスタンプはまったく同じになります(秒を含む)。ファイル名を自動的に一意にする方法は?

このコマンドは、同じディレクトリ構造で再度実行すると(新しい画像を追加した後)、名前が変更された画像が変更されないようにし、既存のファイル名で画像を追加した場合、新しいファイル名も一意である必要があるため、安定している必要があります。 。

私の最初の試みは、結果のファイル名に元のデフォルト名を保持することでしたが、上記の意味では、そのコマンドは安定していません。

ベストアンサー1

試してみたいかもしれませんjhead代わりに、デフォルトで動作します(ab...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 .

おすすめ記事