全部学习汇总: GreyZhang/perl_basic: some perl basic learning notes. (github.com)
对于使用软件对文件进行造假的手段我一直感兴趣,我很想知道那些人是通过什么手段修改的文件属性。一直以来,我觉得修改文件的时间戳是一个很难的工作,直到今天读了一页关于Perl中utime函数用法的书。看起来,修改时间戳还是蛮简单的。
utime函数的传入参数有三个,第一个是最后的访问时间、第二个是文件的最后修改时间、第三个是一个文件列表。
简单写个小程序进行一下相关的测试:
在程序执行前,文件的部分属性如下(时间比较统一的原因是之前我已经执行过Perl文件):
执行程序,把文件的相关时间戳属性信息修改到一周之前:
修改后的文件部分属性如下:
从修改结果来看,成功对当前文件夹下的所有文件的时间戳进行了访问时间与修改时间的属性修改。
读小骆驼书的时候读到,utime无法实现对文件创建时间的修改,每次进行时间戳的属性修改后创建时间都会被改成当前的时间。但是从写的小程序执行结果来看,这个说法并不成立。值得注意的是,书中的示例已经说明都是在UNIX系统中进行的,两个操作系统的文件管理方式差异可能是造成这个执行结果差异的原因。既然这样,这个创建时间的修改在Windows系统中或许还真的能够修改,这个问题后期倒值得去探索一下。