返回顶部

Linux touch命令:创建文件及修改文件时间戳

[复制链接]
追梦人Lv.1 显示全部楼层 发表于 2022-1-5 14:52:04 |阅读模式 打印 上一主题 下一主题
  既然知道了如何在Linux系统中创建目录,接下来你可能会想在这些目录中创建一些文件,可以使用touch命令。

  需要注意的是,touch命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。

  Linux系统中,每个文件主要拥有3个时间参数(通过stat命令进行查看),分别是文件的访问时间、数据修改时间以及状态修改时间:

  访问时间(AccessTime,简称atime):只要文件的内容被读取,访问时间就会更新。例如,使用cat命令可以查看文件的内容,此时文件的访问时间就会发生改变。

  数据修改时间(ModifyTime,简称mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。

  状态修改时间(ChangeTime,简称ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。

  touch命令的基本格式如下:

  [root@localhost~]#touch[选项]文件名

  选项:

  -a:只修改文件的访问时间;

  -c:仅修改文件的时间参数(3个时间参数都改变),如果文件不存在,则不建立新文件。

  -d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的atime和mtime时间改为指定的时间。

  -m:只修改文件的数据修改时间。

  -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为YYMMDDhhmm。

  可以看到,touch命令可以只修改文件的访问时间,也可以只修改文件的数据修改时间,但是不能只修改文件的状态修改时间。因为,不论是修改访问时间,还是修改文件的数据时间,对文件来讲,状态都会发生改变,即状态修改时间会随之改变(更新为操作当前文件的真正时间)。

  【例1】touch命令创建文件。

  [root@localhost~]#touchbols

  #建立名为bols的空文件

  【例2】在例1的基础上修改文件的访问时间。

  [root@localhost~]#ll--time=atimebols

  #查看文件的访问时间

  -rw-r--r--1rootroot0Sep2521:23bols

  #文件上次的访问时间为9月25号21:23

  [root@localhost~]#touchbols

  [root@localhost~]#ll--time=atimebols

  -rw-r--r--1rootroot0May1516:36bols

  #而如果文件已经存在,则也不会报错,只是会修改文件的访问时间。

  【例3】修改bols文件的atime和mtime。
[Shell] 纯文本查看 复制代码
  [root@localhost~]#touch-d"2017-05-0415:44"bols

  [root@localhost~]#llbols;ll--time=atimebols;ll--time=ctimebols

  -rw-r--r--1rootroot0May42017bols

  -rw-r--r--1rootroot0May42017bols

  -rw-r--r--1rootroot0Sep2521:40bols

  #ctime不会变为设定时间,但更新为当前服务器的时间



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

达内教育:成立于2002年。致力于面向IT互联网行业,培养软件开发工程师、测试工程师、系统管理员、智能硬件工程师、UI设计师、网络营销、会计等职场人才 达内使命:缔造年轻人的中国梦、缔造达内员工的中国梦 达内愿景:做管理一流的教育公司
  • 商务合作

  • 微信公众号

  • Powered by Discuz! X3.4 | Copyright © 2002-2021, 达内教育 Tedu.cn
  • 京ICP备08000853号-56 |网站地图 | 京公网安备 11010802029508号