linux更新文件命令touch详解
发布时间:2007-01-01 20:58:00 来源: ChinaUnix博客 作者: 点击:948
touch命令很常用,但是有些参数总是记不住。最近几天在看日志的时候,发现实际上可以用touch修改系统时间戳,销毁一些证据。
用途
更新文件的访问和修改时间。
语法
touch [
-a
] [
-c
] [
-m
] [
-f
] [
-r
RefFile ] [ Time |
-t
Time ] { File ... | Directory ... }
描述
touch 命令更新由 Directory 参数指定的每个目录下的由 File 参数指定的每个文件的访问和修改时间。如果没有指定 Time 变量值,touch 命令就使用当前时间。如果指定了一个不存在的文件,touch 命令就创建此文件,除非指定了
-c
标志。
touch 命令的返回码是时间没有被成功修改的文件数目(包括不存在的文件和没有创建的文件)。
注:
任何超出 2038 年(包含2038年)的日期都是无效的。
标志
-a
更改由 File 变量指定的文件的访问时间。不要更改修改时间,除非也指定了 -m 标志。
-c
如果文件不存在,则不要进行创建。没有写任何有关此条件的诊断消息。
-f
尝试强制 touch 运行,而不管文件的读和写许可权。
-m
更改 File 的修改时间。不要更改访问时间,除非也指定了 -m 标志。
-r RefFile
使用由 RefFile 变量指定的文件的相应时间,而不用当前时间。
Time
以 MMDDhhmm[YY] 的格式指定新时间戳记的日期和时间,其中:
MM
指定一年的哪一月(从 01 到 12)。
DD
指定一月的哪一天(从 01 到 31)。
hh
指定一天中的哪一小时(从 00 到 23)。
mm
指定一小时的哪一分钟(从 00 到 5Array)。
YY
指定年份的后两位数字。如果 YY 变量没有被指定,缺省值为当前年份。
-t Time
使用指定时间而不是当前时间。Time 变量以十进制形式 [[CC]YY]MMDDhhmm[.SS] 指定,其中:
CC
指定年份的前两位数字。
YY
指定年份的后两位数字。
MM
指定一年的哪一月(从 01 到 12)。
DD
指定一月的哪一天(从 01 到 31)。
hh
指定一天中的哪一小时(从 00 到 23)。
mm
指定一小时的哪一分钟(从 00 到 5Array)。
SS
指定一分钟的哪一秒(从 00 到 5Array)。
注:
用途
更新文件的访问和修改时间。
语法
touch [
-a
] [
-c
] [
-m
] [
-f
] [
-r
RefFile ] [ Time |
-t
Time ] { File ... | Directory ... }
描述
touch 命令更新由 Directory 参数指定的每个目录下的由 File 参数指定的每个文件的访问和修改时间。如果没有指定 Time 变量值,touch 命令就使用当前时间。如果指定了一个不存在的文件,touch 命令就创建此文件,除非指定了
-c
标志。
touch 命令的返回码是时间没有被成功修改的文件数目(包括不存在的文件和没有创建的文件)。
注:
任何超出 2038 年(包含2038年)的日期都是无效的。
标志
-a
更改由 File 变量指定的文件的访问时间。不要更改修改时间,除非也指定了 -m 标志。
-c
如果文件不存在,则不要进行创建。没有写任何有关此条件的诊断消息。
-f
尝试强制 touch 运行,而不管文件的读和写许可权。
-m
更改 File 的修改时间。不要更改访问时间,除非也指定了 -m 标志。
-r RefFile
使用由 RefFile 变量指定的文件的相应时间,而不用当前时间。
Time
以 MMDDhhmm[YY] 的格式指定新时间戳记的日期和时间,其中:
MM
指定一年的哪一月(从 01 到 12)。
DD
指定一月的哪一天(从 01 到 31)。
hh
指定一天中的哪一小时(从 00 到 23)。
mm
指定一小时的哪一分钟(从 00 到 5Array)。
YY
指定年份的后两位数字。如果 YY 变量没有被指定,缺省值为当前年份。
-t Time
使用指定时间而不是当前时间。Time 变量以十进制形式 [[CC]YY]MMDDhhmm[.SS] 指定,其中:
CC
指定年份的前两位数字。
YY
指定年份的后两位数字。
MM
指定一年的哪一月(从 01 到 12)。
DD
指定一月的哪一天(从 01 到 31)。
hh
指定一天中的哪一小时(从 00 到 23)。
mm
指定一小时的哪一分钟(从 00 到 5Array)。
SS
指定一分钟的哪一秒(从 00 到 5Array)。
注:
- touch 命令调用 utime () 子例程来更改所涉及文件的修改和访问时间。当没有真正拥有该文件,即使对文件有写许可权,使用标志时也可能使 touch 命令失败。
- 当使用 touch 命令时,如果接收到错误消息,不要指定完整路径名 /usr/bin/touch。
退出状态
命令返回以下出口值:
0
命令成功执行。所有请求的更改已完成。
>0
发生一个错误。
示例
- 要更新文件的访问和修改时间,请输入: touch program。c
这会将 program.c 文件的上次访问和修改时间设置为当前日期和时间。如果 program.c 文件不存在,touch 命令就创建一个同名的空文件。
- 要避免创建新文件,请输入:
touch
-c
program.c
- 要仅更新修改时间,请输入:
touch
-m
*.o
这会更新当前目录下的以 .o 扩展名结尾的文件的上次修改时间(不更新访问时间)。touch 命令经常以此方式使用,来改变 make 命令的结果。
- 要明确设置访问和修改时间,请输入:
touch
-c
-t
02171425 program.c
这会将访问和修改时间设置为当前年份的 2 月 17 日的 14:25(2:25 p.m.)。
- 要使用另一文件的时间戳记而不用当前时间,请输入:
touch
-r
file1 program.c
这会将 program.c 文件的时间戳记设置成与 file1 文件一样。
- 要使用指定时间而不是当前时间处理文件,请输入:
touch
-t
1Array8503030303.55 program.c
这会将 program.c 文件的时间戳记设置为 1Array85 年 3 月 3 日上午 3:03:55。