• 締切済み

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

ファイル名を元にタイムスタンプを変更したい はじめまして。 ディレクトリ内にある多数のファイルのタイムスタンプの変更したいと考えています。 ファイル数は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% (4846/10257)
回答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

  • タイムスタンプの変更について

    複数ファイルのタイムスタンプを、指定した日時に変更する方法を探しています。 指定した日時は、現在の日時 などではなく、バラバラの日時です。 「ファイル名」と「変更後の日時」のリストがエクセルで手元にあるのですが、その「変更後の日時」がバラバラなので方法がわかりません・・。 フリーソフトを紹介するサイトをいくつか見ましたが、一括変更のソフトが多く、複数の日時に変更するソフトは見当たりませんでした。 ご存知の方がいらっしゃいましたら、ご教授ください。 よろしくお願いいたします。

  • タイムスタンプ変更

    Linuxにおいて指定ディレクトリ以下を再帰的に一度にタイムスタンプを変更するコマンドはありませんでしょうか?touchコマンドでは出来ないような気がするのですが・・・。ご存知な方、ご教授頂けたら幸いです。

  • Windowsのファイル・フォルダのタイムスタンプ

    Windows10ですが、ファイルやフォルダを作成してもすぐに忘れてしまうことがあります。その理由としてあるディレクトリ(フォルダ)\Aのサブのディレクトリ\A\Bを変更したりしても元のフォルダ\Aのタイムスタンプが変更されないということがあるように思います。ディレクトリの深いところで何らかの更新をするとそれが上のディレクトリのタイムスタンプを更新するというような設定はないのでしょうか。 技術的に難しい感じはしないのですが、そうしない理由は何でしょうか。フォルダを作った日にちをいつまでもキープしておきたいということでしょうか。 また、フォルダをコピーするとコピーした日がスタンプされますね。移動はどうなるでしょうか(実験すればすぐですが)。タイムスタンプの考え方とはどのようなことになるでしょうか。また、タイムスタンプの付け方の設定変更はできないでしょうか。

  • タイムスタンプ変更ソフト

    タイムスタンプを記憶し元に戻せるソフトを教えてください。 TimeStamp Stopper というソフトがあったのですが、XPでは動かないようです。 複数ファイル/フォルダをドラッグしてこれらのタイムスタンプ 作成日時/更新日付/アクセス日時(これはアクセスしたら変わってしまうけど) をします。 なんらかの編集をし保存します。 当然タイムスタンプは保存した日時になってしまうので、これを更新前の日付 (ドラッグ時に記録した)に戻すことができるソフトです。 vectorも探したんですけど任意の日付または今日に変更するソフト はたくさん見つかりますがこのようなことができるソフトがどれだかわかりませんでした。 可能であればNTFSアクセス権(一時的にeveryoneにして編集した場合など)も 記録し、元に戻せると最適ですがとりあえずタイムスタンプだけでもお願いします。

  • ファイルアップロード時のタイムスタンプ

    PHPで画像ファイルをアップロードした際、 ファイルのタイムスタンプが更新されてしまいます。 あとで、アップされたファイルのタイムスタンプをみて処理させたいのですが 、タイムスタンプ(作成日時、更新日時)を更新させないでアップロードする方法はありますでしょうか。 アップロードする前のタイムスタンプをあらかじめ取得し、DBなどに登録しておいたほうがいいのかもしれませんが、できれば画像ファイルのタイムスタンプを更新させないでアップロードしたいです。

    • ベストアンサー
    • PHP
  • タイムスタンプでファイルを指定する方法

    UNIXコマンドにおいて、ファイル名から日付を判断できないファイルを消す為に、 ファイルのタイムスタンプを指定する方法を教えてください。 やりたいこととしては以下のようになります。 ・4月から7月の間に更新されたファイルを削除したい ・ファイルは同一ディレクトリに1000以上あり、消したいファイルはその内600ほどある

  • タイムスタンプ変更アプリを探してます

    Mac OSX Lion環境下でドキュメントやフォルダのタイムスタンプを簡単に変更できるアプリケーションを探しています。 ドキュメント一枚だけを指定して変更する場合や、フォルダ内の複数ファイル及びフォルダのタイムスタンプも変更する場合も想定しています。 タイムスタンプは作成日、変更日をそれぞれ指定でき、指定する日時の入力等が比較的簡単に指定できるものが良いです。 総じて使い勝手が良く、可能であればフリーウェアのものが理想です。 なければ有料のものでも結構です。 また、アプリケーションは日本語対応のものでなくても構いません。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • データ移行でタイムスタンプが変わるのを防ぎたい

    新しいパソコンを買ったので、前のパソコンからバックアップソフトを使ってデータを移行しました。 全てスムーズに移動できたと安心していたところ、ボイスレコーダーで録音したファイルのタイムスタンプが全て書き換わってしまっており、いつ録音したものかも分からなくなってしまっていることが判明し、大変ショックを受けています。 どうすれば、このような自動的な変更を防ぐことができますか?  私の使っているボイスレコーダーは、mp3で最初から録音してくれ、そのままパソコンに持ってくることができます。しかし、その時にファイル名に日付などは一切入りません。したがって頼りになるのは、ファイルのタイムスタンプだけです。 ところが現在、ファイル作成日は、バックアップから書き戻した日時になってしまっており、ファイル更新日は、ボイスレコーダーから前のパソコンに移動した日時になってしまっています。 どうしたらこのような事態が防げるでしょうか? パソコンは前のも今回のもWindows7です。

  • ACCESSタイムスタンプに関して

    ACCESS2000で住所録を作っています。 (VBAを少しだけ触ったことのある初心者です。) 複数の人間が触るので変更した箇所が分るように 最終変更日時のフィールドを作りデータが変更される都度 日時が更新されるようにしたいと思っています。 タイムスタンプを設定する方法があると聞いた事があるのですが、 具体的にはどうすればよいのでしょうか? 又、wordやexcelのように変更履歴を表示するシステムはあるのでしょうか? どうか宜しくお願いします。

  • c言語でファイルのタイムスタンプを書き換えたい

    Linuxの環境でc言語を利用してファイルのアクセス日時と更新日時を指定したモノに書き換える方法はないでしょうか stat関数を利用して取得する方法まではわかったのですが書き換える方法がわかりません それともファイルのタイムスタンプはユーザーが勝手に書き換える事ができないものだったりするのですか?