Linux下文件的时间属性
2017-06-15 22:52
197 查看
Linux下文件的时间属性
每个文件都有三个主要的时间属性,这三个时间属性的意义是什么呢?
modify time (mtime)
当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限。change time (ctime)
当该文件的“状态、元数据”更改时,就会更新这个时间。比如更改文件权限、属主、属组、文件名等元数据。access time (atime)
当该文件的“内容被访问、读取”时,就会更新这个读取时间(access)。比如通过cat,more命令去读取文件,那么就会更新该文件的atime了。
如何【查看】文件的三个时间属性?
stat命令, 可以显示文件或者文件系统状态。
默认情况下, ls 显示出来的是该文件的 mtime, 也就是这个文件的内容上次被更改的时间。
如何【修改】文件的三个时间属性?
touch命令可以修改文件的时间属性。
针对 access time 没有改变的问题
有时候,用 cat filename,或者 more filename 访问相应文件时,并没有刷新文件的 access time ,而是在修改了文件内容之后,才刷新了access time, 以及 modity time。
官方解释:
在kernel版本 2.6.30之前, Linux的核心开发人员针对 ext3/ext4文件系统的性能进行讨论,其中包括 atime。 在 kernel 2.6.30 之前,文件系统中默认会及时的更新atime,这样会带来两个问题。(1)系统中大量的文件访问,将atime写入到磁盘中,消耗时间,从而降低系统性能(2)频繁的更新操作,也会消耗大量电能
其实在Linux上很少程序需要获取精确的atime时间,并且Linux核心开发人员从ext3/ext4文件系统的性能角度出发,决定在2.6.30版本的内容中修改atime的更新方式,只有在以下三种情况之一才会更新atime:
(1)如果将分区mount挂载的时候指定采用非relatime方式(默认采用 relatime方式),如 strictatime。补充:在OS启动的时候,将各个分区挂载到不同的目录,在挂载(mount)的参数中采用 strictatime,表明及时更新atime。在2.6.30之后mount添加了 relatime 和 strictatime 两个选项,详细的可以通过 man mount 查看。
(2)atime 小于 ctime 或者 小于 mtime 的时候
(3)本次的 access time 和 上次的 access time 超过24个小时
每个文件都有三个主要的时间属性,这三个时间属性的意义是什么呢?
modify time (mtime)
当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限。change time (ctime)
当该文件的“状态、元数据”更改时,就会更新这个时间。比如更改文件权限、属主、属组、文件名等元数据。access time (atime)
当该文件的“内容被访问、读取”时,就会更新这个读取时间(access)。比如通过cat,more命令去读取文件,那么就会更新该文件的atime了。
如何【查看】文件的三个时间属性?
stat命令, 可以显示文件或者文件系统状态。
语法: stat [OPTION]... FILE... [root@web ~]# stat strerror.c File: `strerror.c' Size: 201 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 143765 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-02-11 21:00:46.976652765 +0800 Modify: 2016-02-11 21:00:40.286651956 +0800 Change: 2016-02-11 21:00:40.342654314 +0800
默认情况下, ls 显示出来的是该文件的 mtime, 也就是这个文件的内容上次被更改的时间。
[root@web ~]# ls -l strerror.c -rw-r--r-- 1 root root 201 Feb 11 2016 strerror.c [root@web ~]# ls -l --time=atime strerror.c -rw-r--r-- 1 root root 201 Feb 11 2016 strerror.c [root@web ~]# ls -l --time=ctime strerror.c -rw-r--r-- 1 root root 201 Feb 11 2016 strerror.c
如何【修改】文件的三个时间属性?
touch命令可以修改文件的时间属性。
touch [OPTION]... FILE... -a change only the access time -m change only the modification time -r, --reference=FILE use this file’s times instead of current time
针对 access time 没有改变的问题
有时候,用 cat filename,或者 more filename 访问相应文件时,并没有刷新文件的 access time ,而是在修改了文件内容之后,才刷新了access time, 以及 modity time。
官方解释:
在kernel版本 2.6.30之前, Linux的核心开发人员针对 ext3/ext4文件系统的性能进行讨论,其中包括 atime。 在 kernel 2.6.30 之前,文件系统中默认会及时的更新atime,这样会带来两个问题。(1)系统中大量的文件访问,将atime写入到磁盘中,消耗时间,从而降低系统性能(2)频繁的更新操作,也会消耗大量电能
其实在Linux上很少程序需要获取精确的atime时间,并且Linux核心开发人员从ext3/ext4文件系统的性能角度出发,决定在2.6.30版本的内容中修改atime的更新方式,只有在以下三种情况之一才会更新atime:
(1)如果将分区mount挂载的时候指定采用非relatime方式(默认采用 relatime方式),如 strictatime。补充:在OS启动的时候,将各个分区挂载到不同的目录,在挂载(mount)的参数中采用 strictatime,表明及时更新atime。在2.6.30之后mount添加了 relatime 和 strictatime 两个选项,详细的可以通过 man mount 查看。
(2)atime 小于 ctime 或者 小于 mtime 的时候
(3)本次的 access time 和 上次的 access time 超过24个小时
相关文章推荐
- [Linux] 文件时间属性及touch命令
- Linux下修改文件的时间属性
- Linux下修改文件的时间属性
- Linux文件的三种时间属性
- Linux下查看 && 修改文件的时间属性
- Linux之文件三个时间属性
- Linux系统文件有三个主要的时间属性
- 【随笔】Linux文件的三个时间属性
- Linux文件的三种时间属性
- Linux下修改文件的时间属性
- 转帖:Linux文件的时间属性
- [Linux文件属性]使用utime函数操作文件的时间参数
- linux文件的三种时间属性
- Linux下文件系统的三个主要时间属性atime、ctime、mtime
- Linux文件时间属性,Touch命令和文件按时间排序
- Linux 文件时间记录属性 调优
- Linux 下修改文件的时间属性
- Linux 下修改文件的访问时间和修改时间属性
- linux修改文件的时间属性
- 关于linux stat指令以及怎么用touch来更改三个文件属性中的时间