不同的文件系统,不同的操作系统对于文件时间的设置是不同的,一般分为创建时间(birth)、修改时间(ctime)、访问时间(atime),一般默认情况下显示的是修改时间(ctime),即默认以修改时间(ctime)当作排序时间 ,即一般情况
ls -lrt 显示的是修改时间,可以通过指定–time参数来指定是那种时间,示例如下:
创建时间(birth)
ls -lrt --time=birth
ls -lrt --time=creation
修改时间(ctime)
ls -lrt --time=ctime
访问时间(atime)
ls -lrt --time=atime
一、文件的创建时间
1. centos
centos操作系统,一般不会记录文件的创建时间
2. kylin
在kylin操作系统中,文件系统nfs,是有创建时间的,一般命令如下
ls -lrt --time=birth
ls -lrt --time=creation
创建时间、访问时间、修改时间如下所示:
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=birth test.log
-rw-r--r-- 1 kyzjj kyzjj 11 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 11 Aug 21 16:15 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 11 Aug 21 16:04 test.log
[kyzjj@yyzc-zjjcs01 ~]$
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 11 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$
二、重定向只会改变文件的修改时间,创建时间和读取时间不会改变,对于覆盖和追加是一样的
[kyzjj@yyzc-zjjcs01 ~]$ cat <<EOF >test.log
> hello world
> EOF
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 12 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 12 Aug 21 16:21 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 12 Aug 21 16:15 test.log
[kyzjj@yyzc-zjjcs01 ~]$
[kyzjj@yyzc-zjjcs01 ~]$ cat <<EOF >>test.log
hello world
EOF
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:15 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:23 test.log
[kyzjj@yyzc-zjjcs01 ~]$
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$
三、cat命令只会修改atime(访问)时间
[kyzjj@yyzc-zjjcs01 ~]$ cat test.log
hello world
hello world
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:23 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:26 test.log
[kyzjj@yyzc-zjjcs01 ~]$
四、当文件的权限,属组等属性更改后,修改时间会更新,其他时间不更新
五、more less tail 不会更改任何时间
[kyzjj@yyzc-zjjcs01 ~]$ more test.log
hello world
hello world
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:26 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:23 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$ less test.log
[kyzjj@yyzc-zjjcs01 ~]$ less test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:23 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:26 test.log
[kyzjj@yyzc-zjjcs01 ~]$
[kyzjj@yyzc-zjjcs01 ~]$ tail -200f test.log
hello world
hello world
^C
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:26 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:23 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r--r-- 1 kyzjj kyzjj 24 Aug 21 16:01 test.log
[kyzjj@yyzc-zjjcs01 ~]$
六、vi命令会更改所有时间
[kyzjj@yyzc-zjjcs01 ~]$ vi test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=ctime test.log
-rw-r–r-- 1 kyzjj kyzjj 32 Aug 21 16:30 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=creation test.log
-rw-r–r-- 1 kyzjj kyzjj 32 Aug 21 16:30 test.log
[kyzjj@yyzc-zjjcs01 ~]$ ls -lrt --time=atime test.log
-rw-r–r-- 1 kyzjj kyzjj 32 Aug 21 16:30 test.log
[kyzjj@yyzc-zjjcs01 ~]$
注意:当文件的内容被修改的时候,一般上述三个时间都会被修改成最新的更改时间
七、其他注意点
stat 文件名 也可以查看文件的详细信息
stat -f /zhjl 展示文件系统的详细信息