Linux touch 命令 - 创建空文件或修改文件时间截
• 最后修改:2025-09-18 • 阅读量:78
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 中使用。