タイムスタンプ、Windowsではどうか

Windowsもファイルのタイムスタンプの更新タイミングは、Linuxと同じルールなのでしょうか。
確認してみます。
新規作成。

C:\Users\takk\tmp>echo HELLO >aa.txt

C:\Users\takk\tmp>

ファイルを右クリックして、プロパティを開くと、作成日時、更新日時、アクセス日時が表示されます。

まあ、ここからLinuxとは異なりますね。項目が異なるので、タイムスタンプの考え方も異なるかもしれません。

さて、タイムスタンプですが、dirコマンドで確認するには、dir /?でヘルプの/Tの説明にあるように、

C:\Users\takk\tmp>dir /?
ディレクトリ中のファイルとサブディレクトリを一覧表示します。

DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]


~省略~

  /T          どのタイム フィールドを表示するか、または並べ替えに使用するかを
              指定します。
  タイムフィールド
              C  作成
              A  最終アクセス
              W  最終更新

おそらく作成というのが、さきほど見たプロパティ表示での作成日時で、
最終アクセスが、アクセス日時、最終更新が、更新日時のことだと思います。

DIR /TC
DIR /TA
DIR /TW
でそれぞれ確認できます。

作成日時から見ていきましょう。

C:\Users\takk\tmp>dir /tc
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は B402-CA61 です

 C:\Users\takk\tmp のディレクトリ

2018/05/20  16:15    <DIR>          .
2018/05/20  16:15    <DIR>          ..
2018/06/15  20:36                 8 aa.txt
               1 個のファイル                   8 バイト
               2 個のディレクトリ  136,758,280,192 バイトの空き領域

C:\Users\takk\tmp>

次は、最終アクセス。

C:\Users\takk\tmp>dir /ta
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は B402-CA61 です

 C:\Users\takk\tmp のディレクトリ

2018/06/15  20:36    <DIR>          .
2018/06/15  20:36    <DIR>          ..
2018/06/15  20:36                 8 aa.txt
               1 個のファイル                   8 バイト
               2 個のディレクトリ  136,758,276,096 バイトの空き領域

C:\Users\takk\tmp>

最後に、最終更新。

C:\Users\takk\tmp>dir /tw
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は B402-CA61 です

 C:\Users\takk\tmp のディレクトリ

2018/06/15  20:36    <DIR>          .
2018/06/15  20:36    <DIR>          ..
2018/06/15  20:36                 8 aa.txt
               1 個のファイル                   8 バイト
               2 個のディレクトリ  136,758,755,328 バイトの空き領域

C:\Users\takk\tmp>

ん~。なんだか、同じような表示なので不安になります。このオプション効いているのでしょうか。間違ったオプションを指定してエラーになるか確認してみます。

C:\Users\takk\tmp>dir /tk
パラメーターの形式が誤っています - "k"

C:\Users\takk\tmp>

良かった。/tkなんてオプション指定ないのでエラーになりましたね。やはり、/tc /ta /twでそれぞれの時間は表示されているのでしょう。
では、linuxと同じであれば、aa.txtの内容を表示すると、アクセス時間が変わるハズ。。。やってみます。

C:\Users\takk\tmp>type aa.txt
HELLO

C:\Users\takk\tmp>dir /ta aa.txt
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は B402-CA61 です

 C:\Users\takk\tmp のディレクトリ

2018/06/15  20:36                 8 aa.txt
               1 個のファイル                   8 バイト
               0 個のディレクトリ  136,759,701,504 バイトの空き領域

C:\Users\takk\tmp>

最終アクセス時間がされてません。念のためプロパティも見てみます。

3つ同じ時間のままです。やはり更新されていないようです。

仕方ないので、次に進みます。ファイルを更新すれば、さすがに更新日時は変わるでしょう。やってみます。

C:\Users\takk\tmp>echo HELLO > aa.txt

C:\Users\takk\tmp>dir /tw aa.txt
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は B402-CA61 です

 C:\Users\takk\tmp のディレクトリ

2018/06/15  20:53                 8 aa.txt
               1 個のファイル                   8 バイト
               0 個のディレクトリ  136,757,903,360 バイトの空き領域

C:\Users\takk\tmp>

おっ。変わりました。プロパティも見てみます。

更新日時、ちゃんと変化してます。良かった。
次は、コピーを試してみます。さきほど、内容の表示でアクセス時間は変化しませんでしたので、コピーしてもコピー元のアクセス時間は変化しないと思います。

C:\Users\takk\tmp>copy aa.txt bb.txt
        1 個のファイルをコピーしました。

C:\Users\takk\tmp>

プロパティを確認。

予想通りです。

ファイル名変更はどうでしょうか。

C:\Users\takk\tmp>ren aa.txt cc.txt

C:\Users\takk\tmp>


はい。何も変化しません。
調べるのが面白くなってきました。

コメント

タイトルとURLをコピーしました