Mac批量修改文件的创建日期与修改日期

Mac如何批量修改文件的创建日期与修改日期呢?

首先打开终端,转到指定的目录(暂定目录为:/Volumes/disk2)

在终端输入以下语句,来转到指定目录:

cd /Volumes/disk2

为了方便测试,在上面的路径下,创建test目录:

mkdir test

创建后,进入test目录:

cd test

现在,我们在 /Volumes/disk2 路径下创建了 test 目录。

接下来,创建一些测试文件(为了便于演示,使用以下命令创建)

touch $(date +%s).txt

以上语句,每执行一次,就会在 test 目录下创建一个名称为 “当前时间戳.txt” 的文件,

需要创建多个测试文件,多次执行上面的创建文件语句命令即可

在这里使用循环语句,创建10个测试文件:

for idx in {1..10}

do

    touch $(date +%s)$idx.txt

done

执行后,路径 /Volumes/disk2/test 目录中的文件,大概这个样子:


我目前知道的,有以下几种方式:

方式一:基于 find 命令

将“创建时间”修改为:2000年1月31日12点01分01秒,命令为:

find . -type f -exec touch -t 200001311201.01 {} \;

方式二:基于 touch 命令

将“创建时间”修改为:2001年1月31日12点01分01秒,命令为:

touch -t 200101311201.01 `find . -type f`


是不是发现了问题:创建日期没有修改,只是修改了“修改日期”?

新创建的文件,首次使用上面的两种方式来修改文件的“创建日期”、“修改日期”时,会同时修改文件的“创建日期”、“修改日期”。

当使用同样的命令再次修改文件的“创建日期”、“修改日期”时,仅修改了文件的“修改日期”,“创建日期”不会被修改。


如果因为某些原因,想要修改已经创建的文件的创建日期,如何操作呢?

注意,此方法需要安装 Xcode command line tools(在终端使用命令:xcode-select --install安装)

批量修改创建日期

将“创建时间”修改为:2008年1月31日12点01分01秒,命令为:

for f in $(find . -type f)

do

    setfile -d '1/31/2008 12:01:01' $f

done

思考:如果文件的“修改日期”早于“创建日期”,会出现什么问题呢?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容