Skip to content

修改“文件”或“文件夹”的“创建时间”和“修改时间”

首先,在MAC OS上修改文件或者文件夹的「命名」,是不会修改文件或文件夹的“修改时间”的,对于单个文件来说,例如一个文本文件,只有它包括的内容发生了改变,该文件的“修改时间”才会发生改变。

有时候我们需要手动修改文件的“创建时间”或者“修改时间”,比如我希望对文件进行排序,我新建一个文件,按创建时间倒序排列,那么这个新建的文件就排在第一个位置,但是我希望将它放到其它之前已经创建文件列表的中间,那么就需要手动修改该文件的“创建时间了”。

修改的方法可以通过终端命令「setfile」来实现:

修改创建日期:setfile -d 'mm/dd/yy hh:mm:ss' filename

修改修改日期:setfile -m 'mm/dd/yy hh:mm:ss' filename

这里要注意,在终端输入 filename的时候,如果“文件名称” 包括空格符,需要用反斜杠进行转义,例如,在桌面新建一个文件名包括“空白符”的文件夹:test 1

1、错误的方式,文件名带有“空白符号”,输入回车后,会提示错误信息:

image-20240215184332349

2、正确的方式,在“test”与“空白符号”之间加上转义字符,反斜杠: “\”:

image-20240215184355103

提示:一个简单的方式,就是在输入 setfile -d mm/dd/yy hh:mm:ss 后,直接将文件拖到终端窗口里面,就会自动加上带有转义符号的文件名称。

修改后,查看文件夹的属性信息效果图,“创建时间”和“修改时间”都已经修补成功:2021年1月1日 星期五 下午6:18

image-20240215184958435

3、最后,有些文章提到,可以通过“touch”命令来修改“文件”或“文件夹”的“创建时间”和“修改时间”,如下:

# 修改"创建时间"
touch -mt YYYYMMDDhhmm

# 修改"修改时间"
touch -t YYYYMMDDhhmm

但是经过测试,该命令只能修改"修改时间"。参考:

https://stackoverflow.com/questions/18030828/mac-os-change-creation-and-last-modification-dates-of-a-folder