ファイルとディレクトリのatime、ctime、mtimeについて学んでいます。私が見ると、ディレクトリ内のファイルを変更しても、「ディレクトリファイル」自体のinodeやファイルの内容は変わらないので、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
答え1
実行すると、emacs
そのケースにバックアップファイルが作成されますtest.txt~
。その名前のファイルがすでに存在する場合は、そのファイルを削除して新しいファイルを作成すると疑われます。新しいファイルを作成するとディレクトリが変更されるため、変更および変更時間が更新されます。
echo new line >> blah.txt
代わりに追加のファイルを作成しないので、ディレクトリはこれらのエントリを更新しないと言うことができます。この場合、シェルはファイル(追加用)のみを開きます。