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.txt
touch file1.txt file2.txt
file1.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学习之路一帆风顺。 看到这里不容易点个关注不迷路。