touch 命令
100%

命令行 · 第 5 课

touch 命令

学习使用 touch 命令创建空文件并管理文件时间戳。

touch 命令用于更改文件时间戳,也常用于创建一个或多个空文件。

基本语法是:

touch [OPTIONS] FILE...

创建空文件

创建空文件最简单的方法是使用 touch 后跟文件名。如果文件不存在,touch 会创建它。

$ touch mysuperduperfile

你也可以通过列出每个文件名,一次创建多个文件:

$ touch file1.txt file2.txt file3.log

这适合创建占位文件,但 touch 不会向文件中添加文本。需要非空文件时,请使用文本编辑器或其他能够写入内容的命令。

如果 onetwothree 尚不存在,哪个命令会创建这三个空文件?

更新文件时间戳

文件会记录多种时间戳。默认情况下,对现有文件运行 touch 会把访问时间和修改时间都改为当前时间,同时保持文件内容不变。

你可以通过使用 ls -l 查看文件时间戳,运行 touch 后再查看来验证这一点。

$ ls -l mysuperduperfile
$ touch mysuperduperfile
$ ls -l mysuperduperfile

ls -l 输出通常显示修改时间,而不是访问时间。

如果 report.txt 已经存在,运行 touch report.txt 会发生什么?

控制更改哪个时间戳

使用 -a 只更改访问时间,使用 -m 只更改修改时间:

$ touch -a notes.txt
$ touch -m notes.txt

哪个命令只更新 notes.txt 的修改时间?

设置或复制时间

-d 选项接受日期字符串,而不是使用当前时间:

$ touch -d "2026-06-23 12:30:00" mysuperduperfile

要让一个文件拥有与参考文件相同的访问和修改时间,请使用 -r

$ touch -r file1.txt file2.txt

这里 file1.txt 提供时间戳,file2.txt 是被更改的文件。-t 选项也可用紧凑的数字格式指定时间。

哪个命令会把 source.txt 的时间戳复制给 target.txt

避免创建文件

通常,当指定路径不存在时,touch 会创建文件。如果只想更新已经存在的文件,请加上 -c

$ touch -c existing-file.txt

如果 existing-file.txt 不存在,该命令不会创建它。这适合用于只应更新时间戳、而不应引入新文件的脚本。

哪个命令会在 status.log 存在时更新它,但缺失时不创建它?

课程已完成

你已完成 touch 命令

现在,你可以使用 touch 创建空文件并控制文件时间戳。

  • 创建一个或多个空文件。

  • 在不改变文件内容的情况下更新时间戳。

  • 选择访问时间或修改时间。

  • 设置特定时间或复制参考文件的时间戳。

  • 防止创建缺失文件。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 命令行