如何使用Ruby创建或更新目录的mtime
我想创建一个目录,如果该目录已经存在,请更新它的如何使用Ruby创建或更新目录的mtime,ruby,Ruby,我想创建一个目录,如果该目录已经存在,请更新它的mtime 这是我写的: Dir.exist?(dir) ? FileUtils.touch(dir) : FileUtils.mkdir_p(dir) 有更好的方法启用它吗?ctime无法更新,因为现在是创建时间(*)。请参阅POSIX对此的说明。如果您确实想设置ctime,请将原始目录移开,创建一个新目录(此步骤设置ctime),将所有原始内容移动到新目录,删除旧目录 但是,对于更新mtime(修改时间),您的代码应该是正确的 (*)或者更
mtime
这是我写的:
Dir.exist?(dir) ? FileUtils.touch(dir) : FileUtils.mkdir_p(dir)
有更好的方法启用它吗?
ctime
无法更新,因为现在是创建时间(*)。请参阅POSIX对此的说明。如果您确实想设置ctime
,请将原始目录移开,创建一个新目录(此步骤设置ctime
),将所有原始内容移动到新目录,删除旧目录
但是,对于更新mtime
(修改时间),您的代码应该是正确的
(*)或者更确切地说,根据您的操作系统和文件系统,它可以,如果您对它进行黑客攻击,但您确实不应该这样做。FileUtils.touch(dir)是否足够“更新列表中文件的修改时间(mtime)和访问时间(atime)。如果文件不存在,将创建这些文件。”文档中给出了
mkdir\u p
的示例:FileUtils.mkdir\u p'/usr/local/lib/ruby'
,它将根据需要创建父级。我认为用touch
无法做到这一点,但是(经过测试)touch
似乎可以很好地制作单个目录。我以前没有使用过touch,所以我不知道如何一步创建家长。touch的文档说它只影响mtime和atime,而不影响ctime。而且它只会创建一个常规文件,而不是目录。@start,啊,是的,如果是我创建的文件。:-)如果touch
创建了目录,它如何知道touch'cat'
是否意味着我想要一个文件或目录?对于mtime
,不需要使用touch
,因为您不需要创建文件/目录。足够用了。哦,对不起。我混淆了mtime
和ctime
。(我想,ctime
是“更改的时间”。)