OS X (Unix) shell 命令:可以获取文件的最后打开日期吗?

Jur*_*uri 3 unix shell automator macos

当您使用以下命令时

find /Users/someUser/someFolder/* -type f -mtime +90
Run Code Online (Sandbox Code Playgroud)

您将获得修改日期大于 90 天的所有文件。但是,如果您在 OS X 上的 Finder 中打开文件属性,则还有一个“上次打开”日期。有没有可能像上面的例子那样让所有文件的最后打开日期更大一些阈值?遗憾的是没有“-otime”:)

同样在 Automator 上,您没有上次打开时间的过滤器,但仅用于修改时间和创建时间...

非常感谢

Arj*_*jan 6

该参数atime定义了上次访问时间。好像你想要那个?但这显然与您在 Finder 中使用的日期不同。

请参阅ls -lu日期atime用途。

Mac OS X 还使用“HFS 元数据”(或:“Finder 信息”)来存储日期。例如:Unix 不存储文件创建日期。在cdateUnix中确实是更改日期(包括,例如,改变访问权限,因此cdate得到略微不同的场合比修改日期的新值mdate)。使用这个元数据,Mac OS X 仍然可以保留细节。

有几个选项可以显示(部分)这些日期,例如:

统计文件.txt
获取文件信息文件.txt
mdls 文件.txt

使用mdfind一个可以搜索特定的元数据。但它使用Spotlight 索引,所以我猜它可能找不到所有东西。

喜欢查找从 Time Machine 备份中排除的文件:

须藤 mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"

要根据创建日期进行搜索,请使用kMDItemFSCreationDate。上次打开日期:kMDItemLastUsedDate. 但请注意,通过某些终端命令创建的文件可能没有该元数据集:

echo "Hello world" > ~/Desktop/hello-world.txt
触摸 ~/桌面/will-not-be-found.txt
mdfind -onlyin ~/Desktop 'kMDItemFSCreationDate >= $time.this_week'

在文本编辑中打开“will-not-be-found.txt”后,您将看到该文件。

另请参阅Spotlight 查询语法