私はこれを持っています:
$ ls -l ff
ls: cannot access ff: No such file or directory
$ touch ff
$ stat ff
File: `ff'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 1057193 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ abc) Gid: ( 0/ root)
Access: 2011-09-18 20:36:08.351097228 -0700
Modify: 2011-09-18 20:36:07.340839847 -0700
Change: 2011-09-18 20:36:07.340839847 -0700
mtimeとctimeがatimeより古い理由は何ですか?
答え1
このディレクトリの変更を監視するためにいくつかのプログラムを実行していますか?
シェルプロンプトの実行中にこれを試みると、アクセス時間は変更ff
および変更時間と一致します。ところで、そのディレクトリにノーチラス(GNOMEファイルマネージャ)ウィンドウを開いて試してみると、アクセス時間がほぼ正確に1秒程度遅くなる。
私の場合はウィンドウが開いているので、Nautilusはそのディレクトリの変更を監視しています。新しいファイルが作成されたことを確認し、どのアイコンを表示するのか疑問に思うので、ファイルを見て、どのタイプのファイルであるかを確認してアクセス時間を更新します。
答え2
少なくとも一般的なタッチコマンドに関する限り、この1秒差には理由はありません。
$ ls -l zz
ls: cannot access zz: No such file or directory
$ touch zz
$ stat zz
File: `zz'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 808h/2056d Inode: 265633 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/jlliagre) Gid: ( 1000/jlliagre)
Access: 2011-09-19 07:35:50.679679571 +0200
Modify: 2011-09-19 07:35:50.679679571 +0200
Change: 2011-09-19 07:35:50.679679571 +0200
straceを使用してタッチで生成されたファイルに影響を与える唯一のシステムコールが次のようになっていることを確認してください。
open("zz", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0) = 0
close(3) = 0
utimensat(0, NULL, NULL, 0) = 0
close(0) = 0
実際には、ファイルが作成された後にファイルにアクセスするデーモンや何か(ウイルス対策ソフトウェアなど)がある可能性があります。