为什么要使用 touch -am 来人为地改变访问/修改时间?

为什么要使用 touch -am 来人为地改变访问/修改时间?

因此我了解到,使用touch -atouch -m可以分别更改文件的访问和修改时间。

但为什么?

维基百科说:

“更新的访问或修改日期对于各种其他程序(例如备份实用程序或 ma​​ke 命令行界面编程实用程序)可能很重要。”

但我还是不明白。

有人有 1 或 2 个真实场景吗?此外,此命令会被误用吗?

答案1

维基百科的一个例子表明它与 make 命令一起使用很有用。Make 是一个用于执行 Makefile 的程序,其中包含任何源代码的构建脚本,如果您运行该命令,它会将当前 Makefile 的修改时间存储在目录中。

现在假设您出于某种原因想要重建源代码。如果您再次运行 make,它会告诉您无需执行任何操作,因为它已经运行过了。因此您可以运行touch -m "source.file"来模拟文件修改。第三次运行 make 将会识别更改并重建源代码。

另一个例子是强制备份。如果您正在运行一个备份实用程序,例如,该实用程序会根据文件的修改时间备份文件。您可以通过更改文件的修改时间强制程序备份(或从备份中排除)文件。

造成关于文件年龄的错误印象

例如用于备份方案。您可能不想用较新的备份来更新备份,因为它们是相同的,或者因为与在较慢的线路上更新备份相比,这些更改无关紧要。要实现这一点,您可以选择用较新的时间戳标记备份文件,不是伪造而是声明该文件的有效时间戳现在是不同的。

关于该文件年龄的印象现在确实是错误的,但其含义是真实且合法的。

  • 来自的回答在哪里可以找到更多例子的问题

相关内容