【问题标题】:Access the file "date added" in terminal在终端中访问文件“添加日期”
【发布时间】:2018-11-16 16:15:23
【问题描述】:

在我 Mac 上的下载文件夹中,这些文件有一个“添加日期”列。

我正在尝试创建一个脚本来将超过 x 天的文件移动到我的垃圾文件夹。以下有效,但它是根据创建/修改日期提取文件,而不是我从 Finder 看到的“添加日期”。有没有办法显示/使用这个“添加日期”字段?

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

看起来你必须列出文件名才能使用 STAT 命令。

【问题讨论】:

  • 这个问题已经在这里回答了stackoverflow.com/questions/34123076/…
  • 我已经搜索过这些,但我看不到您可以在哪里列出“添加日期”之前的文件?
  • 当我查看这个特定文件时,它是在 2018 年 11 月 16 日下载或“添加日期”,但创建日期是 2013 年 1 月 29 日。
  • @eckenrod - 不,创建日期和修改日期与添加日期不同。添加日期是文件添加到文件夹的日期。创建日期是创建文件的日期,修改日期是更改文件的日期。将其移至新文件夹不会更改文件。

标签: macos terminal


【解决方案1】:

“添加日期”存储在元数据属性kMDItemDateAdded 中。从终端,可以使用mdls 命令检索它:

mdls -name kMDItemDateAdded <filename>

会返回类似的东西

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

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

限制:

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

另见How can I find out when a file had been moved to trash?

【讨论】:

    【解决方案2】:

    注意:我将放弃这个答案,以防“ctime”和“birthtime”之间的区别有用,但评论者和this newer answer 建议两者实际上并不总是与“添加日期”在 Finder 中。


    stat 结构中,“添加日期”为 st_ctime(即“文件状态信息的最后更改时间”),而“创建日期”为 st_birthtime。

    其他 Mac(真正的 BSD)命令可以访问其中任何一个。例如 ls -ltc Downloads | head 将列出最近“添加”的文件,而 ls -ltU Downloads | head 将列出最近“创建”的文件。

    同样 find Downloads -maxdepth 1 -ctime -2 将在过去 2 天内找到“已添加”文件,而 find Downloads -maxdepth 1 -Btime -2 将找到过去 2 天内“已创建”的文件。

    我怀疑你想要的命令是

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

    注意-ctime的使用。

    【讨论】:

    • 嘿,我注意到ctime 并不总是包含我们通常在 Finder 上看到的Date Added。如果我们想将其用作Date Added,则必须仅在将文件移动到另一个目录时更改它。但是,ctime 似乎已更新,即使我们对文件执行某些操作而不是移动它们!在我在文件中看到ctimeDate Added 之间存在冲突的情况下,我了解到this answer 中的Python 脚本正确生成了我们在Finder 上看到的Date Added
    • ls -ltc 使用文件上次更改的时间。这和创建文件的时间都不是“添加日期”的意思,即文件添加到文件夹的时间。我怀疑“添加日期”是否可以使用ls 显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多