touch 是 Linux/Unix 系统中一个常用的命令,主要用于创建空文件或修改文件的时间戳(访问时间和修改时间)。它用途简单却非常实用,尤其是在脚本编写或文件管理中。
以下是对 touch 命令的详细讲解,包括语法、常用选项、使用场景和示例。

touch [选项] [文件...]touch 的行为。touch 会创建一个新的空文件。atime):文件最近被读取的时间。mtime):文件内容最近被修改的时间。如果指定的文件不存在,touch 会创建一个新的空文件:
touch file.txt此命令创建一个名为 file.txt 的空文件。
-a:仅更新访问时间touch -a file.txt-m:仅更新修改时间touch -m file.txt-t:使用指定时间指定时间戳格式为 [[CC]YY]MMDDhhmm[.ss],其中:
CC:世纪(如 19 表示 1900 年代,20 表示 2000 年代)。YY:年份。MM:月份(01-12)。DD:日期(01-31)。hh:小时(00-23)。mm:分钟(00-59)。.ss:可选的秒数(00-59)。示例:
touch -t 202501071230.45 file.txt将文件的时间戳设置为 2025 年 1 月 7 日 12:30:45。
-d:以人类可读的时间格式指定时间-d 选项可以直接使用类似 YYYY-MM-DD hh:mm:ss 的格式指定时间:
touch -d "2025-01-07 12:30:45" file.txt效果与 -t 类似,但语法更加直观。
-c:不创建文件如果指定的文件不存在,touch 不会创建新文件。
touch -c file.txt-r:使用另一个文件的时间戳将目标文件的时间戳设置为参考文件的时间戳:
touch -r reference.txt file.txt这会将 file.txt 的时间戳设置为与 reference.txt 相同。
--help:显示帮助信息显示 touch 的帮助信息:
touch --help这是 touch 最常见的用法:
touch newfile.txt如果 newfile.txt 已存在,touch 只会更新其时间戳,而不会更改其内容。
touch file1.txt file2.txt file3.txt会同时创建 file1.txt、file2.txt 和 file3.txt。
touch -a file.txt仅更新文件的访问时间。
touch -m file.txt仅更新文件的修改时间。
-t 设置时间touch -t 202501071230 file.txt将文件时间设置为 2025 年 1 月 7 日 12:30:00。
-d 设置时间touch -d "2025-01-07 12:30:45" file.txt将文件时间设置为 2025 年 1 月 7 日 12:30:45。
touch -r source.txt target.txt将 target.txt 的时间戳更新为与 source.txt 相同。
touch -c file.txttouch file1.txt file2.txtfile1.txt 和 file2.txt 不存在,touch 会创建它们。可以使用 ls 命令查看文件的时间戳:
查看文件的修改时间(mtime):
ls -l file.txt查看文件的访问时间(atime):
ls -lu file.txt查看文件的状态改变时间(ctime):
ls -lc file.txt文件权限:要使用 touch 修改文件时间戳,用户必须对文件有写权限。如果没有权限,会报错:
touch: cannot touch 'file.txt': Permission denied时间格式:使用 -t 和 -d 设置时间时,需注意正确的时间格式,否则会报错或导致意外结果。
不影响文件内容:touch 命令只修改文件的时间戳,不会更改文件的内容。
通过熟练使用 touch 命令及其选项,可以轻松完成创建空文件或修改文件的时间戳,在 Linux 文件管理和脚本编写中非常高效和常用,相信这篇文章可以让你的linux学习之路一帆风顺。 看到这里不容易点个关注不迷路。