touch 修改文件时间或创建新文件

追溯前沿

在我们使用这个命令之前我们需要了解一下关于文件的时间参数
- modification time (mtime) 当文件的“内容数据”改变时,就会更新这个时间。文件数据指的是文件的内容,而不是文件的属性和权限。
- status time (ctime) 当文件的“状态”被改变时,就会更新这个时间。就是文件的属性和权限被修改了,就会更新这个时间。
- access time 当“文件内容被取用”时,就会更新这个读取时间。举例来说,我们使用cat去访问文件时,就会更新该文件的atime了。

[wenjie@localhost ~]$ ll /etc/man.config
-rw-r--r-- 1 root root 4617 2012-05-30 /etc/man.config
[wenjie@localhost ~]$ ll --time=ctime /etc/man.config
-rw-r--r-- 1 root root 4617 07-12 09:53 /etc/man.config
[wenjie@localhost ~]$ ll --time=atime /etc/man.config
-rw-r--r-- 1 root root 4617 08-03 17:54 /etc/man.config

在默认情况下,显示出来的就是该文件的mtime,也就是文件内容上次被修改的时间。

命令解释

该命令通常用来创建一个新的文件,或者将某个文件日期修改为目前日期( mtimeatime )。

命令说明
[wenjie@localhost ~]$ touch [-acdmt] 文件
参数:
-a : 仅修改访问时间。
-c : 仅修改文件的时间,若该文件不存在则不新建文件。
-d : 后面可以接欲修改的日期而不使用目前的日期。
-m : 仅修改 mtime。
-t : 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm]。
命令举例
# 例子一:新建一个空的文件
[root@localhost ceshi]# touch test
[root@localhost ceshi]# ll test
-rw-r--r-- 1 root root 0 09-12 16:15 test
# 在默认情况下,后面接有文件,该文件的三个时间(atime,ctime,mtime)都会更新为目前的时间,若该文件不存在,则会主动创建一个新的空文件。

# 例子二:复制一个文件完全的属性,检查其时间
[root@localhost ceshi]# cp -a /etc/man.config ./
[root@localhost ceshi]# ll man.config; ll --time=ctime man.config; ll --time=atime man.config
-rw-r--r-- 1 root root 4617 2012-05-30 man.config <== 这是mtime
-rw-r--r-- 1 root root 4617 08-03 21:39 man.config <== 这是ctime
-rw-r--r-- 1 root root 4617 08-03 21:38 man.config <== 这是atime

由于该文件的内容与属性是被复制过来的,所以该文件的内容时间mtime与原文件相同,但是由于这个文件是刚才被创建的,因此状态时间ctime和读取时间atime便是现在的时间。

# 例子三:将上列例子中复制过来的man.config文件的时间修改为2008/08/08 08:08
[root@localhost ceshi]# touch -t 200808080808 man.config
[root@localhost ceshi]# ll man.config; ll --time=ctime man.config; ll --time=atime man.config
-rw-r--r-- 1 root root 4617 2008-08-08 man.config
-rw-r--r-- 1 root root 4617 08-03 22:05 man.config
-rw-r--r-- 1 root root 4617 2008-08-08 man.config
# 注意看可以发现,文件的 mtime  atime 都发生改变了,但是 ctime 则是记录目前的时间!

不过在平常查看文件属性的时候,我们还是更在乎这个文件的“内容”是什么时候被改动过的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值