首页>教程>Linux 命令手册>Linux touch 命令 - 创建空文件或修改文件时间截

Linux touch 命令 - 创建空文件或修改文件时间截

touch(英文全称:touch)命令是一个管理文件的工具,它的主要功能是修改文件的时间戳,包括文件的访问时间和修改时间,它不会修改文件的内容,那么当文件不存在时,它会创建一个空文件,再修改文件的时间戳。因此,也可以使用 touch 命令创建空文件。

touch 命令语法结构

touch 命令的基本语法结构如下:

touch [选项]... 文件...

语法结构很简单,无需过多解释。

但是文件名称可以使用 shell 通配符匹配文件,可以使用的通配符有:

  • *:匹配任意数量的任意字符,可以是 0 个字符
  • ?:匹配一个任意字符,必须匹配一个字符
  • []:匹配括号内字符集合中的任意一个字符,即:匹配其中的一个字符
  • [!][^]:匹配括号内字符集合中以外的任意一个字符
  • {}:生成多个元素的一个模式列表,以逗号分隔的每个元素,或者指定 首部..尾部 会作为一个序列处理

touch 命令使用示例

如下给出 touch 命令的详细使用示例,便于了解其主要功能。

创建新空文件

当 touch 命令指定的文件不存在时,它会创建文件:

touch newfile.txt

批量创建文件

touch file{1..5}.txt

使用模式列表,会生成多个文件file1.txt 到 file5.txt。

修改文件的时间戳

只指定文件,会把文件的时间戳修改为当前的系统时间:

touch existing.txt

指定时间戳

使用 -t 选项指定时间戳,时间戳的格式为 [[CC]YY]MMDDhhmm[.ss]

touch -t 202301012359.59 report.doc

时间戳格式解释:

  • [CC]YY:两位或四位的年
  • MM:两位的月
  • DD:两位的天
  • hh:两位的小时
  • mm:两位的分
  • ss:两位的秒

touch 命令选项详解

如下给出 touch 命令选项的详细解释说明:

选项说明参数示例
-a只修改文件的访问时间,不修改文件的修改时间touch -a file
-c, --no-create当文件不存在时,不创建文件touch -c may_exist.txt
-d, --date=STRING使用指定格式的时间字符串-d "2023-01-01 08:00"
-h, --no-dereference影响符号链接本身touch -h symlink
-m只修改文件的修改时间,不修改文件的访问时间touch -m file
-r, --reference=FILE使用指定文件的时间戳来修改文件的时间戳-r source.txt
-t STAMP使用指定的时间戳来修改文件的时间戳-t 202301011200.30
--time=WORD指定时间类型:
access / atime(访问时间)
modify / mtime(修改时间)
--time=access
--help显示帮助信息
--version显示版本信息

-d / --date 选项可以使用的时间格式:

  • 使用相对时间:
  • "now":当前时间
  • "yesterday":昨天的这个时刻
  • "tomorrow":明天的这个时刻
  • "2 hours ago":2小时前
  • 使用绝对时间表:
  • "2023-01-01 08:30:15":精确到秒,可以从前往后截取一部分使用
  • "Jan 1 2023":月份使用英文缩写字母的形式
  • 组合形式:
  • "tomorrow 14:00":明天的 14:00

时间戳的类型

时间戳有三种类型:

时间戳类型说明查看命令touch 控制
访问时间 (atime)文件的访问时间ls -lu-a / --time=atime
修改时间 (mtime)文件的修改时间ls -l-m / --time=mtime
变更时间 (ctime)文件元数据(权限 / 所有者)变更时间ls -lc不可修改

结语

touch 命令用来修改文件的时间戳,标记文件有没有被修改,主要作用是标记文件有没有被更新,经常结合监视文件变化的命令使用。

在本文中介绍了 touch 命令的基本语法结构,使用示例和选项的详细解释说明,内容非常具体。touch 命令可在 Linux 各发行版和 FreeBSD 中使用。