Linux

命令 touch 用于修改文件的时间戳 若文件不存在,则会创建文件

2020-09-26 16:54:26 卿卿 7

在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 列出版本讯息。

上述命令参数中,蓝色字体为最常用参数

常见用法:

修改目录student.py的时间属性为当前系统时间,时间由 17:03 变为 17:07

[root@VM_0_5_centos school]# ll
total 20
-rw-r--r-- 1 root root   97 Jul 26 00:35 122.txt
drwxr-xr-x 2 root root 4096 Jul 22 22:59 b
drwxr-xr-x 2 root root 4096 Jul 22 22:59 c
drwxr-xr-x 3 root root 4096 Jul 26 23:50 d
-rw-r--r-- 1 root root   58 Jun 19 17:03 student.py
-rw-r--r-- 1 root root    0 Jun 19 15:56 students.txt
[root@VM_0_5_centos school]# touch student.py
[root@VM_0_5_centos school]# ll
total 20
-rw-r--r-- 1 root root   97 Jul 26 00:35 122.txt
drwxr-xr-x 2 root root 4096 Jul 22 22:59 b
drwxr-xr-x 2 root root 4096 Jul 22 22:59 c
drwxr-xr-x 3 root root 4096 Jul 26 23:50 d
-rw-r--r-- 1 root root   58 Sep 26 17:07 student.py       #对比时间变化
-rw-r--r-- 1 root root    0 Jun 19 15:56 students.txt
[root@VM_0_5_centos school]#

如果文件不存在,则创建文件

[root@VM_0_5_centos school]# ls
122.txt  b  c  d  student.py  students.txt
[root@VM_0_5_centos school]# touch 123.txt       #创建123.txt
[root@VM_0_5_centos school]# ls
122.txt  123.txt  b  c  d  student.py  students.txt
[root@VM_0_5_centos school]#

扩展:

Linux系统中,每个文件都有三个时间,分别是访问时间(Access Time)、数据修改时间(Modify  Time)和态修改后时间(Change Time)。

这三个时间都可以用stat命令来查看(后面介绍命令stat),不过touch命令只能手工指定修改访问时间和修改数据时间,而不能指定修改状态时间。因此不论是修改访问时间,还是修改文件的数据时间,对文件来讲,状态都会发生改变,所以状态修改时间会随之改变。在Linux中,文件没有创建时间