首页 > 编程笔记

Linux touch命令的用法

touch 命令不仅可以创建文件(空文件或多个文件),还可以修改文件的时间参数。

在 Linux 系统中,每个文件有 3 个时间参数,分别是文件的访问时间、数据的修改时间以及状态的修改时间,它们的含义分别为:
  1. 访问时间(atime):如果文件的内容被读取,紧接着访问时间就会自动更新。
  2. 数据修改时间(mtime):当文件的数据发生改变时,该文件的数据修改时间就会随着做出改变。
  3. 状态修改时间(ctime):当文件的状态发生变化时,就会相应改变这个时间。

touch 命令的基本格式如下:

[root@bogon ~]# touch [选项] 文件名

touch 命令常用的选项及作用如表 1 所示。

表 1 touch 命令常用选项及作用
选 项 作 用
-a 只修改文件的访问时间
-c 只修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件
-d 后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间
-m 只修改文件的数据修改时间
-t 命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm

注意,touch 命令可以只修改文件的访问时间,也可以只修改文件的数据修改时间,但是不能只修改文件的状态修改时间。


【例 1】touch 命令创建文件。

[root@bogon ~]# ls
Desktop  Documents  Downloads Music  Pictures  Public  Templates  Videos
[root@bogon ~]# touch test
Desktop  Documents  Downloads Music  Pictures  Public  Templates  test  Videos

注意,这里的 test 是普通文件,不是可以存放文件的目录。

【例 2】修改 test 文件的访问时间。

[root@bogon ~]# stat test
  File: `test'
  Size: 0          Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d Inode: 652079      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-22 07:47:21.001994690 -0700
Modify: 2020-08-22 07:47:21.001994690 -0700
Change: 2020-08-22 07:47:21.001994690 -0700
[root@bogon ~]# touch -a test    <-- 修改 test 的访问时间为当前时间
[root@bogon ~]# stat test
  File: `test'
  Size: 0          Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d Inode: 652079      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-22 07:51:15.337994329 -0700
Modify: 2020-08-22 07:47:21.001994690 -0700
Change: 2020-08-22 07:51:15.337994329 -0700

注意,借助 stat 命令,可以查看目标文件的 3 种时间。

优秀文章