Unix 系统从什么时候开始支持文件和目录的出生/创建时间(btime/crtime)?

Unix 系统从什么时候开始支持文件和目录的出生/创建时间(btime/crtime)?

有谁知道 Unix 何时支持文件和目录的出生/创建时间戳?如果可能的话,当第一个文件管理器(GUI)默认为用户显示它时。

与 Windows、类 Unix 和 Linux 进行比较:

我从实践经验中知道,从 Windows XP(2001 年)开始,Windows 文件管理器(GUI)中就显示目录和文件。

文件 Finder 1.0 中的 System 0.97(Macintosh 系统软件)(1984 年)。对于目录我不再知道了。

iOS 11(2017 年)集成了“文件”应用程序,并默认为用户显示目录和文件的出生/创建时间。

例如一些 Linux 发行版。

Dolphin 中的 KDE(自 2019 年起)。

Nemo 中的 Linux Mint(自 2018 年起)。


这些操作系统直到今天还没有。

Android 11(2020 年)

许多面向最终用户的流行 Linux 发行版,例如 Fedora 33(2020 年)、Ubuntu 20.10(2020 年)。

答案1

对出生时间戳的完全支持包含三个组成部分:

  • 文件系统必须能够存储它们;
  • 操作系统必须提供对它们的访问;
  • 最终用户软件必须显示它们。

在 Unix 世界中,似乎至少有 3 个 POSIX 风格的文件系统支持出生时间戳:

  • UFS2,自 2003 年以来 FreeBSD 中的默认设置;
  • Veritas 文件系统,又名 HP-UX 上的 VxFS 和 JFS,至少从 1996 年起就在 HP-UX 中使用(但我不确定它当时是否支持出生时间戳);
  • ZFS,自 2006 年起在 Solaris 上可用。

(支持出生时间戳的非 POSIX 风格文件系统包括 FAT 和 ISO-9660;虽然 Unix 长期以来一直支持这些文件系统,但我在这里忽略它们,因为它们不会对核心 API 产生太大影响。)

据我所知,HP-UX 和 Solaris 都没有提供stat-style 系统调用来提供对出生时间戳的访问。 FreeBSD 提供st_birthtimestruct stat 从 FreeBSD 5.1 开始;它是stat(1)从 5.1 开始,实现也可以证明这一点。

相关内容