访问终端中的文件"date added"



在Mac上的下载文件夹中,文件有一个"添加日期"列。

我正在尝试创建一个脚本,将x天以上的文件移到我的垃圾文件夹中。以下操作有效,但它是基于创建/修改日期提取文件,而不是我从Finder中看到的"添加日期"。是否有显示/使用此"添加日期"字段的方法?

find/users/home/downloads-maxdepth 1-mtime+365-type f-exec mv"{}"/testination/\;

使用STAT命令,您必须列出文件名才能工作。

"添加日期";被存储在元数据属性CCD_ 1中。可以使用mdls命令从终端检索:

mdls -name kMDItemDateAdded <filename>

会返回类似的东西

kMDItemDateAdded = 2022-01-03 16:40:14 +0000

如果添加-name kMDItemFSName,它也将返回文件名,因此可以与文件名中的通配符一起使用(或仅使用*(。

限制:

虽然这应该适用于问题中描述的场景,但mdls似乎不会为排除在聚光灯搜索范围之外的文件(例如垃圾箱中的文件(返回该属性,即使它们确实具有该属性,如Finder中所示。因此,可能有一个比这个更好的答案,它涵盖了所有文件,无论它们是否在聚光灯索引中。

另请参阅如何查找文件何时被移到垃圾桶?

注意:我将留下这个答案,以防"ctime";以及";出生时间";是有用的,但评论者和这个新的答案表明,两者实际上都不总是与";添加日期";在Finder中。


stat结构中;添加日期";是st_ctime(它是"文件状态信息最后一次改变的时间"(;创建日期";是st_birthtime。

其他Mac(实际上是BSD(命令可以访问这两个命令中的任何一个。例如ls -ltc Downloads | head将列出最近的";添加";文件,而ls -ltU Downloads | head将列出最近的";创建";文件。

类似地find Downloads -maxdepth 1 -ctime -2将找到文件";添加";在过去2天内,而kMDItemDateAdded0将找到文件";创建";最近两天。

我怀疑你想要的命令是

find /users/home/downloads -maxdepth 1 -ctime +365 -type f -exec mv "{}" /destination/ ;

注意-ctime的使用。

最新更新