在Linux系统中,命令 touch 用于修改文件的时间戳(访问时间、数据修改时间、状态修改时间等等...),touch 的中文意思是触摸,使用该命令时,若文件不存在,则会创建文件,但千万别把 touch 当做创建文件的命令哦。
命令名称:touch
英文原意:change file timestamps
所在路径:/bin/touch
执行权限:所有用户
功能描述:修改文件时间戳
语法:
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
-
a 只修改文件的访问时间(Access Time)
-
m 只修改文件的数据修改时间(Modify Time)
-
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
-
f 不使用,是为了与其他 unix 系统的相容性而保留。
-
r 使用参考档的时间记录,与 --file 的效果一样。
-
d 将文件的时间改为指定的时间
-
t 设定档案的时间记录,格式与 date 指令相同。
-
--no-create 不会建立新档案。
-
--help 列出指令格式。
-
--version 列出版本讯息。
上述命令参数中,蓝色字体为最常用参数
常见用法:
修改目录tsetDir的时间属性为当前系统时间,时间由 22:08 变为 22:14
[root@guiyun test]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul 20 22:08 tsetDir
[root@guiyun test]# touch tsetDir
[root@guiyun test]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul 20 22:14 tsetDir
如果文件不存在,则创建文件
[root@guiyun test]# ls
tsetDir
[root@guiyun test]# touch file01
[root@guiyun test]# ls
file01 tsetDir
[root@guiyun test]#
扩展:
Linux系统中,每个文件都有三个时间,分别是访问时间(Access Time)、数据修改时间(Modify Time)和状态修改后时间(Change Time)。
这三个时间都可以用stat命令来查看(后面介绍命令stat),不过touch命令只能手工指定修改访问时间和修改数据时间,而不能指定修改状态时间。因此不论是修改访问时间,还是修改文件的数据时间,对文件来讲,状态都会发生改变,所以状态修改时间会随之改变。在Linux中,文件没有创建时间。