EXT4 文件的修改日期标记为 1979 年 11 月 29 日

EXT4 文件的修改日期标记为 1979 年 11 月 29 日

我正在运行 Linux Mint 20.2 64 位 Cinnamon,这些是未通过完整性测试的 FLAC 文件。这些文件似乎播放得很好。这可能是因为修改日期错误。创建日期和上次访问日期似乎是正确的。所以我问两个问题:

  1. 这个不正确的修改日期是否是文件未通过完整性测试的原因?使用此命令在终端中运行测试

    $ find ~/Music/ -type f -iname '*.flac' -print0 | 
        xargs --null flac -wst
    
  2. 有没有什么简单的方法可以批量更改修改日期,或者我需要逐个文件进行修改(有数百个此类文件)?

答案1

首先,Unix 文件系统 (FS) 通常不跟踪“创建时间”(我说一般是因为现在有 FS 跟踪“诞生”时间)。 stat() 系统调用中的“ctime”字段是不是“(C)reation time”与 DOS/WIN 中类似,但它是“inode (C)hange time”——inode 本身最后一次修改的时间。

其次,它是否以及如何影响任何完整性检查取决于您使用的工具。大多数工具不会考虑任何时间戳,因为时间戳变化太频繁。如果存在完整性故障,则更有可能是真正的完整性故障——文件“播放正常”,因为编解码器只是丢弃坏数据,这些数据可能不足以被人类注意到。

相关的是,您有如此多的错误时间戳的事实表明,驱动器本身出现故障,并在尝试“恢复和重新定位”坏扇区时导致数据损坏。大多数现代驱动器都支持 SMART 故障检测方法,您可以安装各种 SMART 监视器和工具来检查其状态。我建议你这样做。

第三,touch -- *.flac应该一次性将它们全部更新到当前时间。 (当然,除非您有太多文件名,以至于超出了 shell 为传递文件名列表而创建的缓冲区。但这是另一个问题。)

相关内容