修改文件时间和创建新的文件
三个time属性
访问时间(Access time):atime,读取一次文件的内容,该时间便会更新。要想看到文件访问时间可使用ls –ul命令。
修改时间(Modified time):mtime,对文件内容修改一次便会更新该时间。ls –l列出的时间便是这个时间。
改变时间(Change time):ctime,例如更改文件的权限和属性就会更改这个时间。
获得一个文件的三个time:
stat
注意:
更改文件的内容即会更改mtime和ctime,但是文件的ctime可能会在 mtime 未发生任何变化时更改,例如:更改了文件的权限,但是文件内容没有变化。
atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息。
总之, 這三个time stamp 都放在 inode 中。若 mtime, atime 修改inode 就一定会改, 既然 inode 改了, 那 ctime 也就跟着要改了。
创建新文件
功能:
创建一个空的文件,将文件日期修改为目前日期。
语法:
touch [选项] 文件
选项:
-a:仅修改访问时间
-c:仅修改文件的时间,若该文件不存在则不创建新文件
-d:后面可以接欲修改的日期而不用目前的日期,也可以使用--date=“日期或时间”
-m:仅修改mtime
-t :后面可以接欲修改的日期而不用目前的日期,格式[YYMMDDhhmm]
示例:
1.创建一个空文件并查看时间:
2.复制文件:
说明:
文件内容与原来的一致,因此mtime时间是原有的时间点;
文件是刚刚被创建的,所以ctime,atime都是现在的时间点。
3.更改上面文件的时间:
说明:
文件的atime由11号变成9号,即“前两天”;
文件的mtime变为9号;
文件的ctime没有变。
4.将上面的文件修改为指定的时间:
说明:
文件的atime、mtime都变成了指定的时间;
ctime时间没有变。
注意:
复制一个文件时,复制了所有属性,也办法复制ctime属性。