我想知道访问时间是多少.我在网上搜索但得到了相同的定义:
读 - 变了
我知道touch我们可以改变它.任何人都可以用一个例子向我解释一下它是如何改变的吗?有没有办法在unix中获取创建日期/时间?
sar*_*old 22
该stat(2)结构记录的所有文件的日期/时间:
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
Run Code Online (Sandbox Code Playgroud)
st_atime是访问时间,在read(2)调用时更新(也可能在open(2)打开文件时进行读取) - 通过读取文件时不会更新mmap(2).(这就是我假设open(2)将标记访问时间的原因.)
st_mtime是数据修改时间,或者通过write(2)或truncate(2)或open(2)用于写入.(同样,在通过文件写入时不会更新mmap(2).)
st_ctime是元数据修改时间:当任何其他数据struct stat被修改时.
您可以使用以下命令更改文件的时间戳utime(2):
struct utimbuf {
time_t actime; /* access time */
time_t modtime; /* modification time */
};
Run Code Online (Sandbox Code Playgroud)
请注意,您只能更改访问时间和(数据)修改时间.您可以将其中任何一个设置为任意时间,但ctime将设置为当前时间 - 因为您更改了文件的元数据.
此结构中没有创建时间,因此无法确定何时直接从系统创建文件.
如果您确实需要了解创建时间,可以通过查看备份将其缩小到范围 - 假设您感兴趣的文件已备份,以及其元数据.
pro*_*son 18
上次访问:上次访问文件数据的时间.由mknod(2),utimes(2)和read(2)系统调用更改.
上次修改:上次修改文件数据的时间.由mknod(2),utimes(2)和write(2)系统调用更改.
上次更改:上次更改文件状态的时间(inode数据修改).由chmod(2),chown(2),link(2),mknod(2),rename(2),unlink(2),utimes(2)和write(2)系统调用更改.
| 归档时间: |
|
| 查看次数: |
15093 次 |
| 最近记录: |