ファイルとディレクトリに関して、atime、ctime、mtimeについて学習しています。ディレクトリ内のファイルを変更しても、iノードまたはファイルの内容の「ディレクトリファイル」自体は変更していないため、ctimeとmtimeは変更しないでください。
しかし、次のテストでは、ファイルを編集したときに変更時刻と変更時刻が変更されました。なぜ変わったのですか?
$ ls
blah.txt test.txt test.txt~
$ cd ..
$ stat -x Write
File: "Write"
Size: 170 FileType: Directory
Mode: (0777/drwxrwxrwx) Uid: ( 501/user) Gid: ( 20/ staff)
Device: 1,4 Inode: 652017 Links: 5
Access: Tue Aug 11 08:20:33 2015
Modify: Tue Aug 11 08:01:49 2015
Change: Tue Aug 11 08:01:49 2015
$ cd Write
$ ls
blah.txt test.txt test.txt~
$ emacs test.txt
$ cd ..
$ stat -x Write
File: "Write"
Size: 170 FileType: Directory
Mode: (0777/drwxrwxrwx) Uid: ( 501/user) Gid: ( 20/ staff)
Device: 1,4 Inode: 652017 Links: 5
Access: Tue Aug 11 08:20:48 2015
Modify: Tue Aug 11 08:20:48 2015
Change: Tue Aug 11 08:20:48 2015
emacs
を実行すると、バックアップファイルが作成されます。彼の場合はtest.txt~
です。その名前のファイルがすでに存在する場合は、そのファイルを削除して新しいファイルを作成すると思われます。その新しいファイルの作成は、ディレクトリを変更し、したがって、その変更および変更された時間を更新します。
そうであれば、代わりにecho new line >> blah.txt
と言っても、追加のファイルは作成されないので、ディレクトリのエントリは更新されません。この場合、シェルは単にファイルを開きます(追加用)。