touch 命令用于更改文件时间戳,也常用于创建一个或多个空文件。
基本语法是:
touch [OPTIONS] FILE...
命令行 · 第 5 课
学习使用 touch 命令创建空文件并管理文件时间戳。
touch 命令用于更改文件时间戳,也常用于创建一个或多个空文件。
基本语法是:
touch [OPTIONS] FILE...
创建空文件最简单的方法是使用 touch 后跟文件名。如果文件不存在,touch 会创建它。
$ touch mysuperduperfile
你也可以通过列出每个文件名,一次创建多个文件:
$ touch file1.txt file2.txt file3.log
这适合创建占位文件,但 touch 不会向文件中添加文本。需要非空文件时,请使用文本编辑器或其他能够写入内容的命令。
如果 one、two 和 three 尚不存在,哪个命令会创建这三个空文件?
文件会记录多种时间戳。默认情况下,对现有文件运行 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 创建空文件并控制文件时间戳。
创建一个或多个空文件。
在不改变文件内容的情况下更新时间戳。
选择访问时间或修改时间。
设置特定时间或复制参考文件的时间戳。
防止创建缺失文件。