我正在查找可执行的操作列表,这将导致更新目录修改时间。 closures我的头顶上:
我错过了什么?
在Linux(实际上在大多数的Unices中),目录就像包含简单表的文件一样:
inode名称 + ----- + ----------- + | 3 | bin | | 12 | 首页| | 139 | usr | | ... | ... | + ----- + ----------- +
所以,当你修改这个表时,这些“文件”(目录)会被改变。 当你添加或删除表中的条目时(如你所注意到的)它会改变,但是它也适用于目录,不仅仅是文件。 您不能更改现有条目的inode,但可以更改链接到该inode的名称(重命名文件)。 所以:
这些是改变目录修改时间的操作。
您可以“触摸”目录来更新date/时间,而无需更改内容。
在macros观层面,有一个有趣的观察。
当你使用某些在本地目录(而不是/ tmp)中创build一个临时文件的工具时,这些文件通常是隐藏的(以.开始),在目录中没有任何明显的改变,你会发现它的修改时间已经改变。
其中一种情况是当你在vi中打开一个临时(.filename.swp)文件的文件,然后退出文件而不进行任何修改。 交换文件被创build和删除,目录的修改时间也被改变了。
没有什么不对,但有助于知道发生了什么。 而且,如果你对此感到困扰,也有办法阻止它。