文件的时间属性有三种,atime(最后被访问的时间),这个最后被访问是指用cat,less,more,mv,cp等操作后显示的时间。对于ls aa ,echo abc >aa 这样的操作,是不是改变aa文件的atime的。可以用ll --time=atime filename 来查看文件的atime.
ctime(文件权限与属性被更改的时间),这个主要包括,用chmod, chown, mv, cp 等命令进行操作,均会改变其时间。即使用cp -a来保留其时间,但因为档案是被重新建立的,所以ctime也会被更新。只要重新建立档案,就会更新ctime。但如果我们用cat, vi, touch --time, ls 等操作,是不会改变其ctime的。改变文件里面的内容与文件的建立或访问时间是不会影响ctime的值的。可以用 ll --time=ctime filename 来查看ctime
mtime(文件内容被更改的时间)。与vi,nano,echo等有关。即使你用vi并没有修改里面的内容,但是你却用wq保存了,时间照样会更新。只有当文件里面的内容被更改或重新保存时才会更新mtime。此时间与cat,ls,chown,chmod,cp,mv等无关。改变其所有者及权限,或者访问时间,不会改变其mtime的值。这也是ll 默认值。当然,这个值是最重要的!
touch不仅可以创建空文件,还可以更改文件的时间属性。
-d 指定要更改的时间。如touch -d "2011-02-01" ab 就可以把当前目录下的ab的atime,mtime改为2011年2月1日。但不会改变其ctime时间。
[sunjiebin@rhel6 sun]$ ll
-rw-rw-r--. 1 sunjiebin sunjiebin 4 10月 11 22:11 ab
[sunjiebin@rhel6 sun]$ touch -d "2011-02-01" ab
[sunjiebin@rhel6 sun]$ ll
-rw-rw-r--. 1 sunjiebin sunjiebin 4 2月 1 2011 ab
[sunjiebin@rhel6 sun]$ ll --time=ctime ab
-rw-rw-r--. 1 sunjiebin sunjiebin 4 10月 11 22:16 ab
-t 一次性详细指定时间。如touch -t 1102011122.08 ab 即指指定文件ab的修改时间为2011年2月1日11点22分08秒。这个与touch -d "2011-02-01 11:22:08" ab效果是一样的。
umask 新建文件预设权限。可以用umask来查看预设权限数值。也可以用umask -S来查看新建的文件权限关系。普通用户默认的umask值为0002.第一个0暂时不知道干嘛的,后面三个0分别代表所属者,所属组,其它用户对应的掩码值。umask中的值的权限与新建文件的权限是相反的。umask=0002,代表的权限为u= , g= ,o=w 。那么反过来,新建的文件权限即为:u=rw, g=rw, o=r。也就是664的权限(新建文件默认是没有x权限的)。umask -S u=rwx,g=rwx,o=rx 即 umask 0002。可以直接用umask 0022即表示设置预设权限为所有者完全控制,所属组和其它用户只读。