inodeとの関連性のあるctime

 contents

 
 
前回は、アクセス時間を表示するatimeについて検証をしていきました。

次はctimeになります。

ctimeは最終inode更新日時です。

inodeとはlinuxシステム上でファイルやディレクトリに与えらる一意の整数値で、ファイルのパーミッションや所有者ID、グループID、さらにファイルやディレクトリを特定するためのinode番号など様々なデータが格納されます。

 

inodeには割り当てるinode番号には限りがあり、割り当てられたパーティションのサイズやファイルシステムの種類によって最大値が変わります。

inodeが限界値を迎えると、ファイルやディレクトリの作成や更新ができなくなるといった障害が起きます。

 

さて、話が脱線しましたが、このinode内のデータが書き換わることで、最終inode更新日時、つまりctimeのタイムスタンプが更新されます。

 

では、atimeの時と同じように検証してみましょう。

ちなみにlsコマンドの-lcオプションでctimeを確認することができます。
そして今回もうひとつコマンドを追加します。
inode番号を表示するオプションでlsコマンドの-iを使います。

ls -iで表示される番号が更新されているとctimeのタイムスタンプも更新されます。

前回と同じようにtouchコマンドを使ってファイルを作成。
ls -lciで作成されたファイルを確認します

 

では次にlessコマンドでファイルを閲覧した時のタイムスタンプを見てみましょう。
ファイルのinodeに含まれる情報を更新した訳ではないので、タイムスタンプに変化はないというのが予想です。

予想通りatimeの時と違ってタイムスタンプは更新されていません。

 
 

次はviコマンドを使ってファイルの中に文字を入れます。

今度は更新されました。
これはviの特性で、viでファイルを開くとswpファイルができます。
編集後の保存はこのswpファイルが正となってファイルが作成されるため、inode番号が変更になります。
そのため、ファイルは新しく作成されたものとなり、ctimeが更新されます。

 
 

最後にファイルのパーミッションを変えてみます。

inode番号は変更されませんが、inodeの保持しているファイルのパーミッションが変更されたため、タイムスタンプが更新されました。

 
 

これで検証は終わりです。
他にもinodeの持っているデータを更新すると、タイムスタンプが更新されますので、興味があれば、試してみるとよいです。

次回は、一番身近なタイムスタンプ、mtimeについて検証をしていきます。

 
 

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

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