一、touch命令简介
命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件。我们平时用得最多的是通过touch创建一个空文件,实际上通过touch命令可以修改文件的atime、mtime,所以文件的真实访问时间和修改时间是可以被修改,我们在排查系统异常的时候还需要结合日志、历史命令等等因素综合决策。
二、使用语法及参数说明
1、使用语法
用法:touch [OPTION]… FILE…
2、参数说明
参数 |
参数说明 |
- a |
改变档案的读取时间记录。 |
-c |
假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。 |
-d |
设定时间与日期,可以使用各种不同的格式。 |
-f |
不使用,是为了与其他 unix 系统的相容性而保留。 |
-h |
影响每个符号链接,而不是任何引用的文件(仅在可以更改符号链接时间戳的系统上有用) |
-m |
改变档案的修改时间记录。 |
-r |
使用参考档的时间记录,与 --file 的效果一样。 |
-t |
设定档案的时间记录,格式与 date 指令相同。 |
–help |
列出指令格式。 |
–version |
列出版本讯息。 |
三、使用示例
1、获取命令帮助
[root@s145]~# touch --help
2、查看命令版本
[root@s145]~# touch --version
touch (GNU coreutils) 8.22
…
3、创建一个空文件
如果文件不存在,使用touch命令默认创建一个空文件。
4、更新atime、mtime、ctime
使用touch命令,如果文件存在则更新atime,mtime,ctime为当前时间。
5、-a更新atime和ctime
使用-a参数,touch文件时,文件存在只会更新atime和ctime为当前时间。
6、-m参数修改mtime
使用-m参数,touch文件时,文件存在只会更新mtime和ctime为当前时间。
7、-d参数将文件的atime,mtime,ctime按照设置修改
使用touch -d "3 years ago"可以将文件的三个时间改为3年前。
8、-t参数修改atime和mtime
使用touch -t "[[CC]YY]MMDDhhmm[.ss]"修改文件的atime和mtime
9、使用-at参数只修改atime
如果只想更新atime可以使用-at组合参数。
10、使用-mt参数只修改mtime
如果只想更新mtime可以使用-mt组合参数。
11、-r参数修改文件时间属性为另一文件时间属性
通过touch -r file1 file2,将file2的时间属性值修改为file1文件的时间属性。
12、-h更新软连接的时间属性
touch命令默认更新的是真实文件的时间属性,如果需要更新软连接的时间属性,需要使用-h参数。