关于Linux系统中的Access time,Modify time和Change time
在linux系统中,文件和目录的inode信息中,包含三项和时间有关的内容,分别是:
Access time, Modify time,和Change time. www.zhishiwu.com
用文件来做个例子.比如,创建测试文件'1',使用命令stat查看其inode内容,显示类似下面:
Shell代码
$ stat 1
File: `1'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 117604369 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 503/ ***) Gid: ( 100/ users)
Access: 2012-11-19 11:56:06.000000000 +0800
Modify: 2012-11-19 11:56:20.000000000 +0800
Change: 2012-11-19 11:56:20.000000000 +0800
Access time,指最近一次的程序对文件(目录)的直接存取时间.比如下面的例子:
Shell代码
$cat 1
1
2
3
$ stat 1
File: `1'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 117604369 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 503/ ***) Gid: ( 100/ users)
Access: 2012-11-19 14:14:33.000000000 +0800
Modify: 2012-11-19 11:56:20.000000000 +0800
Change: 2012-11-19 11:56:20.000000000 +0800
这里Access time发生了变化,而其它两项未变动.
Modify time,指最近一次的文件(目录)的内容被改动的时间.比如下面的例子:
Shell代码
$echo '4' >> 1
$ stat 1
File: `1'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 117604369 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 503/ ***) Gid: ( 100/ users)
Access: 2012-11-19 14:14:33.000000000 +0800
Modify: 2012-11-19 14:17:51.000000000 +0800
Change: 2012-11-19 14:17:51.000000000 +0800
这里,Modify time已经发生了变化.
Change time,指最近一次的文件(目录)的inode信息被改变的时间.在上面的'Modify time'的例子中可以看到,Change time同时也发生了变化.这是因为文件的内容被修改后,相应的信息也会发生变化,比如文件大小'Size'.
如果是一些单独改变文件(目录)的inode信息的操作,则只会对Change time产生影响.比如下面的例子:
Shell代码
$mv 1 2
$stat 2
File: `2'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 117604369 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 503/ ***) Gid: ( 100/ users)
Access: 2012-11-19 14:14:33.000000000 +0800
Modify: 2012-11-19 14:17:51.000000000 +0800
Change: 2012-11-19 14:23:38.000000000 +0800
上面的操作对文件'1'进行了改名,所以只是影响了Change time.
如果使用命令'ls',其有三个选项: '-u', '-t', 和'-c',分别对应的就是Access time, Modify time和Change time.使用这些选项,命令'ls'的输出会根据相应的time来进行排序.默认的,'ls'采用的是Modify time,即选项'-t'.
另外,如果在上面使用'ls'时,配合选项'--full-time',则在输出中可以显示详细的time信息.