当前位置: 首页 > Linux

使用Setfile命令修改MacOS文件创建时间(creation date),非touch命令,附Linux文件时间属性介绍

时间:2023-04-06 20:03:35 Linux

修改MacOS文件创建时间(creationdate)使用Setfile命令,不是touch命令,附带Linux文件时间属性介绍使用命令touch实现(事先说明,这种通用方法不能满足要求修改“创建时间”。后来有一个可行的方案是使用setfile命令):命令格式touch[选项参数]<文件名>命令参数-t使用指定的日期和时间,修改“atime(访问时间))”和文件的“mtime(修改时间)”。-aor--time=atimeor--time=accessor--time=use只修改atime(访问时间)。-m或--time=mtime或--time=modify只修改mtime(修改时间)。-c或--no-create不创建任何文件,该参数会修改“atime(访问时间)”、“mtime(修改时间)”、“ctime(文件属性改变时间)”。-d使用指定的日期时间而不是当前时间。-f这个参数会被忽略不处理,它只负责解决BSD版本touch命令的兼容性问题。-r将指定文档或目录的日期和时间设置为与引用文档或目录的日期和时间相同。关于Linux系统的atime(访问时间)、mtime(修改时间)、ctime(文件属性改变时间),将在下面的“附录”部分进行介绍。e.g.//使用指定时间(2020年2月3日12:30),修改文件的“atime(访问时间)”和“mtime(修改时间)”touch-t202002031230<文件名>//使用指定时间(2020年02月03日12:30),修改文件的“修改时间”touch-mt202002031230<文件名>无论是touch-t还是touch-mt,执行后:只有“修改时间”修改了,但是“创建时间”还是没有修改。原因是:如果指定时间早于原始创建时间,touch-t只会修改创建时间。解决方案是使用Setfile命令。Setfile命令是一个MacOSX开发者工具,可以修改文件的创建(creationtime)和修改日期(modificationtime)。但前提是你的MacOS上必须已经安装了Xcode。如果没有,您可以前往MacAppStore进行安装。您可以在/usr/bin/SetFile位置找到此命令行工具。使用方法Setfile-d'01/10/202011:00:00'执行后:文件的“创建时间”修改成功!附录Linux|文件的时间属性在Linux系统中,文件的时间属性主要分为三种:atime(accesstime):即Accesstime。读取一次文件内容,文件的atime会更新。例如,当使用more和cat查看文件时,它的atime会被更新。mtime(modificationtime):即修改时间。修改文件内容,文件的mtime会更新。比如常见的使用vi、vim修改文件并保存,其mtime会更新。ctime(fileattributechangetime):即Changetime。修改文件的属性status,文件的ctime会更新。例如,当文件名、内容、大小、权限、组等发生变化时,其ctime也会更新。ll或ls命令查看文件的时间属性ll--time=atime或ls-lu命令查看atime(访问时间)ll或ls-l命令查看mtime(修改时间)ll--time=ctime或ls-lc命令查看ctime(文件属性改变时间)stat命令查看文件的时间属性。可以使用stat命令同时查看一个文件的三个属性。find命令用于查找需要特定时间的文件。结合find命令,可以找到需要特定时间的文件。比如查询最近24小时内修改过的文件:find./-mtime-24filecreationtimeLinux普通文件系统,没有文件创建时间属性,这个可以去网上看看相关讨论。引用Linux|文件的时间属性-嘉微科技的文章-知乎