ファイルの更新時刻を戻したい(bash)

  • インゴットくん
    インゴットくん システムちーむ
  • このエントリーをはてなブックマークに追加

現在のコンピュータシステムでは、情報を取り扱うために「ファイル」と呼ばれる管理方法を使っています。

ファイルとは、データの入れ物のことで、その「入れ物」に対し、「ファイル名」「更新日時」などの付加情報を付けることで、データにアクセスしやすく工夫されているものです。

さて、「ファイルを更新する」といいますが、実際には「ファイルの中身のデータ」を更新するのであって、その際、「更新日時」を新しくするというルールがあるため、ファイルの付加情報としての「更新日時」も新しくなる、という理屈になっております。

このファイルの更新日時、戻したくなったことってありませんか?

今回は、Linuxのbashにおいて、「特定のディレクトリにまとめておいたファイルに合わせて、更新したファイルの更新日時を元に戻す」というのをやってみます。

コード

  • 日付が古いファイルが入っているディレクトリを「orig/」
  • 日付が新しいファイルが入っているディレクトリを「target/」

をしたとき、

$ cd target
$ for FILE in *; do touch -r "../orig/${FILE}" "${FILE}" ; done

で、target/ に存在するファイルと同じ名前のorig/にあるファイル名の更新時刻にそろえることができます。

解説

MacのFinderで見ると一目瞭然なのですがちょっと今ないのでLinuxの画面にてご説明

20160716-timestamp

こんな感じで、ファイルの日付を元に戻すことができます。

いつ使うの?

昔は、デザインソフトが日付を感知して更新を検知していたので、ファイルの日付をいじる必要性はありましたが、いまだとあんまりいじらないでしょうか。

でも、touchコマンドでは、今回使用したほかのファイルの日付に合わせる -r オプションのほかにも、指定した日付にする -d オプションもありますし、オプション無しで指定すると現在時刻に設定されるなど、様々な使い方ができますので、ぜひ使ってみてください。

Windowsだと、2016年8月2日以降のAnniversary update適用後、使えるようになりますよ。

このエントリーをはてなブックマークに追加

インゴットくんが最近書いた記事

WRITERS POSTS もっと見る

他にもこんな記事が読まれています!

  • WEB
  • マーケティング
  • サーバー・ネットワーク
  • ライフスタイル
  • お知らせ