• 締切済み

ファイル名を元にタイムスタンプを変更したい

ファイル名を元にタイムスタンプを変更したい はじめまして。 ディレクトリ内にある多数のファイルのタイムスタンプの変更したいと考えています。 ファイル数は3000以上あるため、ファイルひとつひとつ touch コマンドではとても間に合いません。 ディレクトリ内のファイル名には次のような規則があります。 ■ ファイル名の規則 20YYmmdd_HHiiss_カメラモデル名_IMG0001.JPG 20YYmmdd_HHiiss_カメラモデル名_IMG0002.JPG 20YYmmdd_HHiiss_カメラモデル名_MVI0003.MP4 20YYmmdd_HHiiss_カメラモデル名_MVI0004.MP4 つまり、ファイル名の先頭部分が更新日時を意味します。 ■ 更新日時がずれる理由 インターネット経由でファイル入手等により、更新日時が「撮影した日時」ではなく「入手した日時」になってしまいます。 「ファイルの更新日時よりも、ファイル名の先頭部分の時間が正確である。」という前提です。 ■ 一括で更新日時を変更 find, grep, touch コマンドを組み合わせれば、ディレクトリ内のファイルを一括処理できるような気がするのですが。 皆様の知恵をお借りできればと思います。 ■ 環境 ・OS Ubuntu 12.04.2 LTS ・シェル /bin/bash

みんなの回答

  • notnot
  • ベストアンサー率47% (4896/10350)
回答No.1

for file in * do Y=${file:0:4}; m=${file:4:2}; D=${file:6:2}; H=${file:9:2}; M=${file:11:2}; S=${file:13:2} touch -d "$Y-$m-$D $H:$M:$S" $file done

2168168614
質問者

お礼

お返事が遅くなりましてすみません。 見事にタイムスタンプの一括変更ができました!

すると、全ての回答が全文表示されます。

関連するQ&A

品番違いの詳細について
このQ&Aのポイント
  • エレコム株式会社の「EX-Gシリーズマウス」には、品番がM-XGM30UBSKABKとM-XGM30UBSKBKの2種類があります。後半の「~ABK」と「~BK」の違いを教えてください。
  • エレコム株式会社の「EX-Gシリーズマウス」で、品番がM-XGM30UBSKABKとM-XGM30UBSKBKの2種類があります。後半の「~ABK」と「~BK」には何か違いがあるのでしょうか?詳細を教えてください。
  • 「EX-Gシリーズマウス」の品番には、M-XGM30UBSKABKとM-XGM30UBSKBKの2種類がありますが、後半の「~ABK」と「~BK」には何か違いがあるのでしょうか?詳細を教えてください。
回答を見る

専門家に質問してみよう