Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Ruby创建或更新目录的mtime_Ruby - Fatal编程技术网

如何使用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
是“更改的时间”。)