如何获取文件的ctime,atime,mtime并进行更改

如何获取文件的ctime,atime,mtime并进行更改,第1张

如何获取文件的ctime,atime,mtime并进行更改

的Linux

时间

ctime是索引节点或文件更改时间。更改文件属性(例如更改所有者,更改权限或将文件移至其他文件系统)时,ctime会更新,但在修改文件时也会更新。

文件ctime和atime取决于 *** 作系统。对于Linux,更改索引节点或文件时,Linux将ctime设置为当前时间戳。

这是一个示例,在Linux上,通过将atime和mtime设置为其原始值来隐式更改ctime。

package mainimport (    "fmt"    "os"    "syscall"    "time")func statTimes(name string) (atime, mtime, ctime time.Time, err error) {    fi, err := os.Stat(name)    if err != nil {        return    }    mtime = fi.ModTime()    stat := fi.Sys().(*syscall.Stat_t)    atime = time.Unix(int64(stat.Atim.Sec), int64(stat.Atim.Nsec))    ctime = time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec))    return}func main() {    name := "stat.file"    atime, mtime, ctime, err := statTimes(name)    if err != nil {        fmt.Println(err)        return    }    fmt.Println(atime, mtime)    fmt.Println(ctime)    err = os.Chtimes(name, atime, mtime)    if err != nil {        fmt.Println(err)        return    }    atime, mtime, ctime, err = statTimes(name)    if err != nil {        fmt.Println(err)        return    }    fmt.Println(atime, mtime)    fmt.Println(ctime)}

输出:

2014-01-02 02:21:26.262111165 -0500 EST 2014-01-02 02:18:13.253154086 -0500 EST2014-01-02 02:21:25.666108207 -0500 EST2014-01-02 02:21:26.262111165 -0500 EST 2014-01-02 02:18:13.253154086 -0500 EST2014-01-02 02:21:43.814198198 -0500 EST


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5476428.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存