SELECT * from table where server in ('server1','server2','server3')
始终遵循符号链接并更改实际文件的时间戳。
有没有方法可以更改符号链接的时间戳?
就像os.Chtimes
一样。
答案 0 :(得分:1)
至少从syscall
包中不确定是否可行。
查看说syscall.Chtimes的源代码:
func Chtimes(name string, atime time.Time, mtime time.Time) error {
var utimes [2]syscall.Timespec
utimes[0] = syscall.NsecToTimespec(atime.UnixNano())
utimes[1] = syscall.NsecToTimespec(mtime.UnixNano())
if e := syscall.UtimesNano(fixLongPath(name), utimes[0:]); e != nil {
return &PathError{"chtimes", name, e}
}
return nil
}
复制此代码-并删除我假设遵循符号链接的fixLongPath
调用-仍然会影响目标文件,而不影响源符号链接。
即使在指向不存在的文件的符号链接上尝试此操作,也会返回运行时错误no such file or directory
。
CGO
pkg-可以,但这似乎是过分的。
答案 1 :(得分:0)
您可以检查符号链接是否存在,如果存在,则将其删除并创建另一个符号链接。
if _, err := os.Lstat(symlinkPath); err == nil {
os.Remove(symlinkPath)
}
err := os.Symlink(filePath, symlinkPath)
if err != nil {
fmt.Println(err)
}