文章目录
- touch 命令
- 1、基本用法
- 2、常见选项
- 3、举例
- 4、注意事项
touch 命令
touch
是 Linux 系统中的一个常用命令,用于创建空文件或更新已有文件的时间戳。它既可以用来快速生成新文件,也可以用来修改文件的访问时间(access time, atime)和修改时间(modification time, mtime)
1、基本用法
touch [选项] 文件名...
2、常见选项
- -a:更新文件的访问时间(access time),而不改变修改时间(modification time)。
- -c:如果文件不存在,则不创建文件,也不会报错。
- -d:使用指定的字符串时间(而不是当前时间)来设置文件的访问和修改时间。时间格式可以是多种标准格式,例如
YYYYMMDDhhmm[.ss]
或描述性字符串如next Wed
。 - -f:如果文件是一个符号链接,则更新的是符号链接本身,而不是它指向的文件。
- -h:类似于
-f
选项,如果文件是一个符号链接,则更新符号链接本身。这是-f
的另一种写法,在某些实现中可能只支持其中一种。 - -m:更新文件的修改时间(modification time),而不改变访问时间(access time)。
- -r:使用指定文件的访问和修改时间来更新目标文件的时间戳。
- -t:使用指定的时间(而不是当前时间)来设置文件的访问和修改时间。时间的格式是
[[CC]YY]MMDDhhmm[.ss]
,其中CC
是世纪(可选),YY
是年份的后两位,MM
是月份,DD
是日期,hh
是小时,mm
是分钟,ss
是秒(可选)。 - –time=TIME:设置要更新的时间类型。可以是
atime
(访问时间)、mtime
(修改时间)或time
(默认同时更新访问和修改时间)。 - –help:显示
touch
命令的帮助信息并退出。
3、举例
-a 选项举例:
#只修改访问时间
touch -a filename
-m
选项举例:
#只修改修改时间
touch -m filename
-c 选项举例:
#如果文件不存在,不会创建新文件;只尝试更新已有文件的时间戳
touch -c filename
-t 选项举例:
#指定时间戳
touch -t 202410171230.30 filename
手动指定时间戳。格式为:
CCYY
:世纪和年份(可选)。MMDD
:月份和日期。hhmm
:小时和分钟。.ss
:秒(可选)
-d
选项举例:
#使用人类可读的时间字符串
touch -d "2024-10-17 12:30:00" filename
-r 选项举例:
#将目标文件的时间戳设置为与源文件相同。
touch -r source_file target_file
–help 选项举例:
#显示帮助信息。
touch --help
--version
选项举例:
#显示命令版本。
touch --version
4、注意事项
权限问题
- 如果没有权限修改文件的时间戳或创建文件,
touch
命令会失败。在这种情况下,可以使用sudo
sudo touch filename
-c
选项防止意外创建文件
- 在自动化脚本中,如果不希望误创建文件,建议使用
-c
选项:
touch -c filename
时间格式的正确性
- 使用
-t
指定时间时,必须严格遵守格式,否则会报错。例如:
touch -t 202410171200 filename # 正确格式
touch -t 2024-10-17 filename # 错误格式
特殊时间戳的影响
- 如果系统时间不正确,
touch
会根据当前系统时间设置时间戳,因此在处理时间敏感任务时需要确保系统时间准确。
时间戳精度
- 某些文件系统不支持高精度时间戳,秒级以下的时间可能会被忽略。