是否有相当于 Mac OS X 的“添加日期”文件属性?

是否有相当于 Mac OS X 的“添加日期”文件属性?

OS X 保留文件添加到当前所在文件夹的日期和时间,这对于排序很有用。是否有任何 Unix/Linux 文件系统或程序提供类似的功能?

这不是重复的如何执行 ls 然后按创建日期对结果进行排序?因为我问的是日期添加到文件夹,未创建。如果它被移动到其他地方,时间就会重置。

答案1

是的,尽管细节会有很大差异,无论是通过扩展stat(2)(macOS 做什么,何时_DARWIN_FEATURE_64_BIT_INODE定义),还是将该信息放入扩展文件属性或其他地方。例如 RFC 7530 中提到的 NFSv4

5.8.2.36.  Attribute 50: time_create

   The time of creation of the object.  This attribute does not have
   any relation to the traditional UNIX file attribute "ctime"
   ("change time").

或者通过一些快速搜索来查找文件系统

btrfs otime
Ext4 crtime
UFS2 st_birthtime
ZFS crtime

不过,此类接口以及所使用的特定库或软件产品是否支持此类接口都会有很大差异。

答案2

不,Linux 没有“添加日期”功能。

在 MacOS 中,“添加日期”是文件添加到目录时的时间戳。 Linux 根本没有这些信息。

Linux(例如ext4)有ctime(当文件权限或所有权更改时)、mtime(当实际文件内容更改时)、atime(文件上次打开时间)和crtime(文件的出生日期)。

在 Linux 中将文件移动到不同的目录没有记录时间。 (如果文件完全移动到不同的文件系统,则会更新 ctime。但是跨安装在同一文件系统上的目录移动不会更新 ctime。主要是,ctime 会针对其他内容进行更新。)

“添加日期”是 MacOS 独有的功能;这不是“创造时间”。这是“文件移动”时间。抱歉,您在 Linux 上运气不好。

太糟糕了,它是比“创建时间”又名“生日”更有用的功能。

相关内容