touch 命令直接修改inode中文件的元数据,并不访问数据的具体内容。

命令格式:

touch [选项]... 文件...

命令参数:
-a   只更改存取时间。

--time=STYLE 指定修改的时间类型    
    STYLE可以为atime或access或mtime  

-c/--no-create  如果文件不存在,不建立任何文档。

-d/-t  使用指定的日期时间,而非现在的时间。

-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   只更改变动时间。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
touch -a file
//刷新文件的atime

touch -m file
//刷新文件的mtime\

// 一般情况下,刷新了atime或者mtime,ctime会随之改变

touch -c filename
//如果filename不存在,不创建

实例1:将文件的时间戳(atime和mtime)时间改为昨天

wKiom1edvTmBgSFrAABpsxApYZ4392.jpg

实例2:将文件的mtime修改到指定时间

wKiom1edvdizJ-RKAADnGuZt16U167.jpg-wh_50

实例3:修改文件的mtime和atime到指定时间

wKioL1edvenjpHXvAABtDwxaOTQ858.jpg

实例4:更新log.log的时间和log2012.log时间戳相同

touch -r log.log log2012.log
[root@localhost test]# ll
-rw-r--r-- 1 root root    0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root    0 10-28 14:48 log.log

tips:

-t/-d time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处time的格式为: [[CC]YY]MMDDhhmm[.SS]

如果不给出CC的值,则touch将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.这样可以处理闰秒. 由于系统的限制,早于1970年1月1日的时间是错误的。