因此我了解到,使用touch -a
和touch -m
可以分别更改文件的访问和修改时间。
但为什么?
维基百科说:
“更新的访问或修改日期对于各种其他程序(例如备份实用程序或 make 命令行界面编程实用程序)可能很重要。”
但我还是不明白。
有人有 1 或 2 个真实场景吗?此外,此命令会被误用吗?
答案1
维基百科的一个例子表明它与 make 命令一起使用很有用。Make 是一个用于执行 Makefile 的程序,其中包含任何源代码的构建脚本,如果您运行该命令,它会将当前 Makefile 的修改时间存储在目录中。
现在假设您出于某种原因想要重建源代码。如果您再次运行 make,它会告诉您无需执行任何操作,因为它已经运行过了。因此您可以运行touch -m "source.file"
来模拟文件修改。第三次运行 make 将会识别更改并重建源代码。
另一个例子是强制备份。如果您正在运行一个备份实用程序,例如,该实用程序会根据文件的修改时间备份文件。您可以通过更改文件的修改时间强制程序备份(或从备份中排除)文件。
造成关于文件年龄的错误印象
例如用于备份方案。您可能不想用较新的备份来更新备份,因为它们是相同的,或者因为与在较慢的线路上更新备份相比,这些更改无关紧要。要实现这一点,您可以选择用较新的时间戳标记备份文件,不是伪造而是声明该文件的有效时间戳现在是不同的。
关于该文件年龄的印象现在确实是错误的,但其含义是真实且合法的。
- 来自的回答这在哪里可以找到更多例子的问题