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
思考:如果文件的“修改日期”早于“创建日期”,会出现什么问题呢?