- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
如何使用 Go 获取文件的 ctime、mtime、atime 并更改它们?
在 Go 1.1.2 中,* os.Stat 只能获取 mtime* os.Chtimes 可以改变 mtime 和 atime 但不能改变 ctime。
最佳答案
Linux
ctime is the inode or file change time. The ctime gets updated when the file attributes are changed, like changing the owner, changing the permission or moving the file to an other filesystem but will also be updated when you modify a file.
文件 ctime 和 atime 取决于操作系统。对于 Linux,ctime 由 Linux 设置为 inode 或文件更改时的当前时间戳。
这是一个在 Linux 上通过将 atime 和 mtime 设置为其原始值来隐式更改 ctime 的示例。
package main
import (
"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 EST
2014-01-02 02:21:25.666108207 -0500 EST
2014-01-02 02:21:26.262111165 -0500 EST 2014-01-02 02:18:13.253154086 -0500 EST
2014-01-02 02:21:43.814198198 -0500 EST
关于file - 如何获取文件的 ctime、atime、mtime 并更改它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20875336/
此命令的行为与我预期的不同。 -atime +1 表示“过去 24 小时内访问过的任何内容”,对吗? 输出: find . -type f -atime +1 -name 'installAction
我想创建一个个人数字文件。 我希望能够将数字文件(有些是几年前的,有些是最近的,有些尚未创建的)检查到该文件中,并将它们连同它们的元数据(如 ctime、atime 和 mtime)一起保存。 我希望
我的代码就像 String path = "/home/user/tmp/file1"; Path p = FileSystems.getDefault().getPath(path)
根据documentation , tar 能够保存访问时间,但是当我尝试同样的操作时,它却失败了。有人可以解释一下吗? $$$:~/user1/testtar/source> tar --versi
看起来 Dir.entries("dir") 在 Linux 上更新了 dir 的 atime。 irb(main):042:0> File::Stat.new("/tmp/tmp2").atime
学习 C 并且我正在尝试对 stat() 为 atime/mtime 属性和纳秒精度值返回的变量类型和大小进行直观比较。 我在文件上运行 stat() 并希望从返回的 stat 结构中获取 mtime
我可以使用下面的代码获取上次访问时间。 public Date getLastAccessTime(String filePath) throws IOException { File f =
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在用 Python 编写一个程序,需要比较几个目录的 atime、mtime 和 ctime。为此,我使用了 os.stat("my_directory/")。结果我得到的是一个包含这些时间的字符
如何使用 Go 获取文件的 ctime、mtime、atime 并更改它们? 在 Go 1.1.2 中,* os.Stat 只能获取 mtime* os.Chtimes 可以改变 mtime 和 at
有没有什么方法可以在 os.Chtimes 的文件上只设置 mtime ?我以为我可以将修改后的 mtime 和未修改的 atime 一起传递给 Chtimes,但是 FileInfo 返回 os.S
一些文件系统(例如 ext4 和 JFS)提供纳秒分辨率的 atime/mtime 字段。如何读取 ns 分辨率字段? stat syscall返回第二分辨率的 time_t。 最佳答案 秒分辨率时间
是否可以更改符号链接(symbolic link)的 atime 和 mtime? 我正在尝试使用 utime() 函数(C 代码)更改它,但它更改了目标文件的时间。 如果我这样做了 cp -dpr
我有一个 Python 2.7 程序,它必须创建一个具有过去修改日期的符号链接(symbolic link)。我可以使用 os.symlink() 创建链接,并且 os.utime() 声称可以设置文
即使在支持纳秒分辨率的文件系统(如 ext4)上,Node 的 fs.stat 返回的时间似乎也具有一秒的分辨率。 var fs = require('fs') var stats = fs.stat
我目前正在验证生成的 Excel 工作表是否包含正确呈现的“时间戳”,其日期和时间部分位于不同的单元格中,并且其格式已根据语言环境进行了调整。 我的测试用例失败了,因为当我从字符串中读回 Excel
我正在尝试使用标准的 deno fs 模块,但编译器提示没有 --unstable 标志。 import { writeJson, readJson } from "https://deno.land
我是一名优秀的程序员,十分优秀!