修改文件时间或创建文件
##语法
[root@study ~]# touch [-acdmt] 文件
##参数
-a : 仅修改access_time
-c : 仅修改文件的时间,若文件不存在则不创建新文件;
-d : 后面可以接欲修订的时间而不用目前的日期,也可以使用 --date="日期或时间"
-m : 仅修改mtime;
-t : 后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]
##范例
范例一:新建一个空的文件并观察时间
[tucci@study ~]$ cd /tmp
[tucci@study tmp]$ touch testtouch
[tucci@study tmp]$ ls -l testtouch
-rw-rw-r--. 1 tucci tucci 0 Jun 16 00:45 testtouch
# 注意到,这个文件的大小是0,在默认的状态下,如果touch后面有接文件,
# 则该文件的三个时间(atime/ctime/mtime)都会更新为目前的时间。若该文件不存在,
# 则会主动的创建一个新的空的文件
范例二:将~/.bashrc复制为bashrc,假设复制完全的属性,检查其日期
[tucci@study tmp]$ cp -a ~/.basrc bashrc
[tucci@study tmp]$ date; ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
Tue Jun 16 00:49:24 CST 2015 <== 这是目前的时间
-rw-r--r--. 1 tucci tucci 231 Mar 6 06:06 bashrc <== 这是mtime
-rw-r--r--. 1 tucci tucci 231 Mar 15 23:44 bashrc <== 这是atime
-rw-r--r--. 1 tucci tucci 231 Mar 16 00:47 bashrc <== 这是ctime
范例三:修改案例二的bashrc文件,将日期调整为两天前
[tucci@study tmp]$ touch -d "2 days ago" bashrc
[tucci@study tmp]$ date:ll -time=atime bashrc; ll --time=ctime bashrc
Tue Jun 16 00:51:52 CST 2015
-rw-r--r--. 1 tucci tucci 231 Jun 14 00:51 bashrc
-rw-r--r--. 1 tucci tucci 231 Jun 14 00:51 bashrc
-rw-r--r--. 1 tucci tucci 231 Jun 16 00:51 bashrc
# 跟上个范例比较看看,本来是16日变成了14日了(atime/mtime), ctime并没有跟着改变
范例四:将上个范例的bashrc日期改为2014/06/15 2:02
[tucci@study tmp]$ touch -t 201406150202 bashrc
[tucci@study tmp]$ date; ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
Tue Jun 16 00:54:07 CST 2015
-rw-r--r--. 1 tucci tucci 231 Jun 15 2014 bashrc
-rw-r--r--. 1 tucci tucci 231 Jun 15 2014 bashrc
-rw-r--r--. 1 tucci tucci 231 Jun 16 00:54 bashrc
# 注意,日期在atime与mtime都改变了,但是ctime则是记录目前的时间