ファイルのタイムスタンプ

 contents

  1. ファイルのタイムスタンプ ⇦今ここ
  2. inodeとの関連性のあるctime
  3. 一番身近なタイムスタンプ!mtime

 
 
皆さんはファイルのタイムスタンプが知らないうちに変わってたという経験はありますか?

ファイルのタイムスタンプって結構頻繁に変わっちゃうんですよね。

LINUXのファイルのタイムスタンプには3種類あります。

atime
ctime
mtime

ファイルの内容を更新した時?ファイルのパーミッションを変更した時?ファイルを閲覧した時?

それぞれのタイムスタンプがどんな操作を行うとタイムスタンプが変わるのか検証してみたいと思います。

まずatimeです。

atimeは最終アクセス日時で、ファイルに対して何か操作を行うとタイムスタンプが更新されます。

lsコマンドのオプションで -lu を指定して表示されたタイムスタンプがatimeになります。

 
それでは検証してみましょう。

touchコマンドを使ってファイルを作成。
ls -luで作成されたファイルを確認します

$ touch atime_test.txt
$ ls -lu atime_test.txt 
-rw-rw-r-- 1 sooota sooota 0  8月 22 09:09 atime_test.txt

 

では次にlessコマンドでファイルを閲覧した時のタイムスタンプを見てみましょう。

$ ls -lu atime_test.txt 
-rw-rw-r-- 1 sooota sooota 0  8月 22 09:09 atime_test.txt
$ date
2017年  8月 22日 火曜日 09:13:40 JST
$ less atime_test.txt 
$ ls -lu atime_test.txt 
-rw-rw-r-- 1 sooota sooota 0  8月 22 09:13 atime_test.txt

タイムスタンプを見ると、更新されていることがわかります。

 
 

viコマンドではどうでしょうか?lessで更新されたので、更新されそうですね。

$ ls -lu atime_test.txt 
-rw-rw-r-- 1 sooota sooota 0  8月 22 09:13 atime_test.txt
$ date
2017年  8月 22日 火曜日 09:14:05 JST
$ vi atime_test.txt 
$ ls -lu atime_test.txt 
-rw-rw-r-- 1 sooota sooota 5  8月 22 09:14 atime_test.txt

予想通り更新されてました。

 
 

では、パーミッションを変更したら、どうでしょうか?

$ ls -lu atime_test.txt 
-rw-rw-r-- 1 sooota sooota 5  8月 22 09:14 atime_test.txt
$ date
2017年  8月 22日 火曜日 09:15:01 JST
$ chmod 755 atime_test.txt 
$ ls -lu atime_test.txt 
-rwxr-xr-x 1 sooota sooota 5  8月 22 09:14 atime_test.txt

タイムスタンプが更新されていないことが確認できます。

これはちょっと意外でした。

最終アクセス日時だから、ファイルに対してアクセスしたらタイムスタンプ変更ということですね。

 
 

atimeについてはここまでにして、次回はctimeの検証を進めていきます。

 
 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村