🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html
🌅主页:猫咪-9527-CSDN博客
"欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。"
目录
[1. 创建空文件](#1. 创建空文件)
[2. -a:仅更新访问时间](#2. -a:仅更新访问时间)
[3. -m:仅更新修改时间](#3. -m:仅更新修改时间)
[4. -t:使用指定时间](#4. -t:使用指定时间)
[5. -d:以人类可读的时间格式指定时间](#5. -d:以人类可读的时间格式指定时间)
[6. -c:不创建文件](#6. -c:不创建文件)
[7. -r:使用另一个文件的时间戳](#7. -r:使用另一个文件的时间戳)
[8. --help:显示帮助信息](#8. --help:显示帮助信息)
[1. 创建空文件](#1. 创建空文件)
[2. 一次创建多个空文件](#2. 一次创建多个空文件)
[3. 更新访问时间](#3. 更新访问时间)
[4. 更新修改时间](#4. 更新修改时间)
[5. 设置特定的时间戳](#5. 设置特定的时间戳)
[使用 -t 设置时间](#使用 -t 设置时间)
[使用 -d 设置时间](#使用 -d 设置时间)
[6. 将一个文件的时间戳应用到另一个文件](#6. 将一个文件的时间戳应用到另一个文件)
[7. 不创建文件,只更新现有文件的时间](#7. 不创建文件,只更新现有文件的时间)
[8. 创建多个文件并更新时间戳](#8. 创建多个文件并更新时间戳)
touch
是 Linux/Unix 系统中一个常用的命令,主要用于创建空文件或修改文件的时间戳(访问时间和修改时间)。它用途简单却非常实用,尤其是在脚本编写或文件管理中。
以下是对 touch
命令的详细讲解,包括语法、常用选项、使用场景和示例。

基本语法
bash
touch [选项] [文件...]
- 文件:指定要操作的文件,可以是一个或多个。
- 选项 :用于控制
touch
的行为。
主要功能
- 创建空文件 :如果指定的文件不存在,
touch
会创建一个新的空文件。 - 修改时间戳 :
- 访问时间 (Access time,
atime
):文件最近被读取的时间。 - 修改时间 (Modification time,
mtime
):文件内容最近被修改的时间。
- 访问时间 (Access time,
常用选项详解
1. 创建空文件
如果指定的文件不存在,touch
会创建一个新的空文件:
bash
touch file.txt
此命令创建一个名为 file.txt
的空文件。
2. -a
:仅更新访问时间
bash
touch -a file.txt
- 只更新文件的访问时间,不改变修改时间。
- 如果文件不存在,会自动创建。
3. -m
:仅更新修改时间
bash
touch -m file.txt
- 只更新文件的修改时间,不改变访问时间。
- 如果文件不存在,会自动创建。
4. -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)。
示例:
bash
touch -t 202501071230.45 file.txt
将文件的时间戳设置为 2025 年 1 月 7 日 12:30:45。
5. -d
:以人类可读的时间格式指定时间
-d
选项可以直接使用类似 YYYY-MM-DD hh:mm:ss
的格式指定时间:
bash
touch -d "2025-01-07 12:30:45" file.txt
效果与 -t
类似,但语法更加直观。
6. -c
:不创建文件
如果指定的文件不存在,touch
不会创建新文件。
bash
touch -c file.txt
- 如果文件存在,更新时间戳。
- 如果文件不存在,不会创建。
7. -r
:使用另一个文件的时间戳
将目标文件的时间戳设置为参考文件的时间戳:
bash
touch -r reference.txt file.txt
这会将 file.txt
的时间戳设置为与 reference.txt
相同。
8. --help
:显示帮助信息
显示 touch
的帮助信息:
bash
touch --help
使用场景与示例
1. 创建空文件
这是 touch
最常见的用法:
bash
touch newfile.txt
如果 newfile.txt
已存在,touch
只会更新其时间戳,而不会更改其内容。
2. 一次创建多个空文件
bash
touch file1.txt file2.txt file3.txt
会同时创建 file1.txt
、file2.txt
和 file3.txt
。
3. 更新访问时间
bash
touch -a file.txt
仅更新文件的访问时间。
4. 更新修改时间
bash
touch -m file.txt
仅更新文件的修改时间。
5. 设置特定的时间戳
使用 -t
设置时间
bash
touch -t 202501071230 file.txt
将文件时间设置为 2025 年 1 月 7 日 12:30:00。
使用 -d
设置时间
bash
touch -d "2025-01-07 12:30:45" file.txt
将文件时间设置为 2025 年 1 月 7 日 12:30:45。
6. 将一个文件的时间戳应用到另一个文件
bash
touch -r source.txt target.txt
将 target.txt
的时间戳更新为与 source.txt
相同。
7. 不创建文件,只更新现有文件的时间
bash
touch -c file.txt
- 如果文件存在,则更新其时间戳。
- 如果文件不存在,则不创建新文件。
8. 创建多个文件并更新时间戳
bash
touch file1.txt file2.txt
- 如果
file1.txt
和file2.txt
不存在,touch
会创建它们。 - 如果它们已存在,则只更新时间戳。
检查时间戳
可以使用 ls
命令查看文件的时间戳:
-
查看文件的修改时间(
mtime
):bashls -l file.txt
-
查看文件的访问时间(
atime
):bashls -lu file.txt
-
查看文件的状态改变时间(
ctime
):bashls -lc file.txt
注意事项
-
文件权限 :要使用
touch
修改文件时间戳,用户必须对文件有写权限。如果没有权限,会报错:bashtouch: cannot touch 'file.txt': Permission denied
-
时间格式 :使用
-t
和-d
设置时间时,需注意正确的时间格式,否则会报错或导致意外结果。 -
不影响文件内容 :
touch
命令只修改文件的时间戳,不会更改文件的内容。