如何在TCL中设置符号链接的mtime?

如何在TCL中设置符号链接的mtime?,tcl,symlink,filemtime,Tcl,Symlink,Filemtime,file mtime可用于设置文件的修改时间。但是如果是符号链接,它将设置目标的mtime。如何设置符号链接本身的mtime?到目前为止,最简单的方法是运行: 这是因为Tcl不提供对系统调用(或其包装器)的任何本机访问。您可以在Tcl扩展中创建自己的访问功能(直接或使用Critcl或SWIG),但偶尔只需设置一个链接,使用-h选项调用-touch是最简单的。我之所以研究这个问题,部分原因是-h并不是在所有touch的实现中都可用。是的,但在没有它的操作系统上,可能是因为底层操作系统也不支持该功能

file mtime
可用于设置文件的修改时间。但是如果是符号链接,它将设置目标的mtime。如何设置符号链接本身的mtime?

到目前为止,最简单的方法是运行:


这是因为Tcl不提供对系统调用(或其包装器)的任何本机访问。您可以在Tcl扩展中创建自己的访问功能(直接或使用Critcl或SWIG),但偶尔只需设置一个链接,使用
-h
选项调用
-touch
是最简单的。

我之所以研究这个问题,部分原因是
-h
并不是在所有
touch
的实现中都可用。是的,但在没有它的操作系统上,可能是因为底层操作系统也不支持该功能。在这一点上,实际上没有任何解决办法。
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]
}