Mark Roddy Asked: 2009-06-18 08:06:16 +0800 CST2009-06-18 08:06:16 +0800 CST 2009-06-18 08:06:16 +0800 CST 更改目录修改时间的操作列表 772 我正在寻找可以执行的操作列表,这些操作将导致更新目录修改时间。在我的头顶上: 在目录中创建一个新文件 删除目录中的文件 我错过了什么? linux 3 个回答 Voted Best Answer Juliano 2009-06-18T08:18:37+08:002009-06-18T08:18:37+08:00 在 Linux 中(实际上在大多数 Unices 中),目录就像包含简单表的文件,如下所示: 索引节点名称 +-----+------------+ | 3 | 垃圾桶 | | 12 | 主页 | | 139 | 用户名 | | ... | ... | +-----+------------+ 因此,当您更改此表时,这些“文件”(目录)会更改。当您从该表中添加或删除条目时它会发生变化(如您所述),但这也适用于目录,而不仅仅是文件。您不能更改现有条目的 inode,但可以更改链接到该 inode 的名称(重命名文件)。所以: 创建指向 inode 的链接(在该目录中创建文件/目录,或将文件移动到该目录中) 删除指向 inode 的链接(从该目录中删除文件/目录,或从该目录中移动文件) 更改链接的名称(重命名文件/目录) 这些是更改目录修改时间的操作。 nik 2009-06-18T08:29:01+08:002009-06-18T08:29:01+08:00 在宏观层面,有一个有趣的观察结果。 当您使用某些倾向于在本地目录(而不是 /tmp)中创建临时文件的工具时,这些文件通常是隐藏的(以 a 开头.),目录中没有任何明显的变化,您会发现其修改时间发生了变化。 一种这样的情况是,当您打开一个vi创建临时 (.filename.swp) 文件的文件,然后在不进行任何更改的情况下退出该文件。交换文件被创建和删除,目录的修改时间也被改变。 这没有错,但有助于了解发生了什么。而且,如果您对此感到困扰,也有办法阻止它。 Dave Drager 2009-06-18T08:25:52+08:002009-06-18T08:25:52+08:00 您也可以“触摸”目录以更新其日期/时间,而无需更改内容。
在 Linux 中(实际上在大多数 Unices 中),目录就像包含简单表的文件,如下所示:
因此,当您更改此表时,这些“文件”(目录)会更改。当您从该表中添加或删除条目时它会发生变化(如您所述),但这也适用于目录,而不仅仅是文件。您不能更改现有条目的 inode,但可以更改链接到该 inode 的名称(重命名文件)。所以:
这些是更改目录修改时间的操作。
在宏观层面,有一个有趣的观察结果。
当您使用某些倾向于在本地目录(而不是 /tmp)中创建临时文件的工具时,这些文件通常是隐藏的(以 a 开头
.
),目录中没有任何明显的变化,您会发现其修改时间发生了变化。一种这样的情况是,当您打开一个
vi
创建临时 (.filename.swp) 文件的文件,然后在不进行任何更改的情况下退出该文件。交换文件被创建和删除,目录的修改时间也被改变。这没有错,但有助于了解发生了什么。而且,如果您对此感到困扰,也有办法阻止它。
您也可以“触摸”目录以更新其日期/时间,而无需更改内容。