【发布时间】:2020-09-22 08:09:10
【问题描述】:
file mtime可以用来设置文件的修改时间。但如果是符号链接,它将设置目标的 mtime。如何设置符号链接本身的 mtime?
【问题讨论】:
file mtime可以用来设置文件的修改时间。但如果是符号链接,它将设置目标的 mtime。如何设置符号链接本身的 mtime?
【问题讨论】:
到目前为止,最简单的方法是运行external command:
proc SetMtime {filename timestamp} {
# A little bit of type enforcement; it's not necessary, but avoids potential trouble
exec touch -h -t [expr {int($timestamp)}] [file normalize $filename]
}
这是因为 Tcl 不提供对 utimensat(2) 系统调用(或其包装器,lutimes(3))的任何本机访问。您可以在 Tcl 扩展中创建自己的访问函数(直接,或使用 Critcl 或 SWIG),但对于偶尔设置单个链接,使用 -h 选项调用 touch 是最简单的。
【讨论】:
-h 并非在touch 的所有实现中都可用。