确定文件系统时间戳精度

l0b*_*0b0 7 filesystems timestamps

EXT3 的文件时间戳精度限制为 1 秒,UFS 为 1 微秒,EXT4 为 1 纳秒(至少根据经验)。有没有办法仅根据文件系统信息来确定这一点?

我能想到的 hacky 替代方案要么是将我所有的单元测试限制在几秒钟内(我现在这样做),要么touch是一堆文件并检查stat -c %x.

小智 6

据我所知,没有地方存储这些信息。它被编码到文件系统中。但是,您可以手动制作文件系统列表和相应的精度。我会使用一个case语句来根据您的文件系统列表测试文件系统 ID。您可以将默认值设为 1,因为很少有精度小于 1 秒的示例。

旧版本的 FAT 和当前版本的 zip 使用我在线阅读的 2 秒时间戳精度。但是,我建议您对此进行事实检查。

您可以使用以下命令获取文件的文件系统的 id。

stat -f --format="%t" $file
Run Code Online (Sandbox Code Playgroud)

  • `%i` 每个文件系统都是唯一的,例如,如果你有两个 `ext4` 分区,每个分区都有不同的 ID。 (2认同)