对于EXT3,文件时间戳的精度被限制为1秒,对于UFS,文件时间戳的精度限制为1微秒,对于EXT4,文件时间戳的精度被限制为1毫秒(至少根据经验)。是否有任何方法仅根据文件系统信息来确定这一点?
我能想到的麻烦的替代方案要么是将我所有的单元测试限制在秒(我现在就这样做了),要么是touch一堆文件,并检查stat -c %x中哪些数字是零。
发布于 2011-05-06 17:40:46
据我所知,没有任何地方可以储存这些资料。它被编码到文件系统中。但是,您可以手动创建一个文件系统列表以及相应的精度。我将使用一个case语句来根据您的文件系统列表测试文件系统id。您可以创建默认的1,因为很少有精度小于1秒的例子。
较早版本的FAT和当前版本的zip使用2秒的时间戳精度,据我在网上看到的。不过,我建议你去核实一下。
您可以使用以下命令获取文件文件系统的id。
stat -f --format="%t" $file发布于 2011-04-19 07:26:49
发布于 2018-12-26 14:08:03
我刚刚实现了一个文件数据库的检测。我首先将文件的时间戳设置为1234 millis,然后再读取它并检查它是1234 (至少ms精度)还是1000 (第二精度)。到目前为止,我学到的是:
https://unix.stackexchange.com/questions/11599
复制相似问题