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

既然知道了如何在 Linux 系统中创建目录,接下来你可能会想在这些目录中创建一些文件,可以使用 touch 命令。

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

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

  • 访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新。例如,使用 cat 命令可以查看文件的内容,此时文件的访问时间就会发生改变。
  • 数据修改时间(Modify Time,简称 mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。
  • 状态修改时间(Change Time,简称 ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。

touch 命令的基本格式如下:

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

选项:

  • -a:只修改文件的访问时间;
  • -c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。
  • -d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。
  • -m:只修改文件的数据修改时间。
  • -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm

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

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

[root@localhost ~]#touch bols
#建立名为 bols 的空文件

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

[root@localhost ~]#ll --time=atime bols
#查看文件的访问时间
-rw-r--r-- 1 root root 0 Sep 25 21:23 bols
#文件上次的访问时间为 9 月 25 号 21:23
[root@localhost ~]#touch bols
[root@localhost ~]#ll --time=atime bols
-rw-r--r-- 1 root root 0 May 15 16:36 bols
#而如果文件已经存在,则也不会报错,只是会修改文件的访问时间。

【例 3】 修改 bols 文件的 atime 和 mtime。

[root@localhost ~]# touch -d "2017-05-04 15:44" bols
[root@localhost ~]# ll bols; ll --time=atime bols; ll --time=ctime bols
-rw-r--r-- 1 root root 0 May 4 2017 bols
-rw-r--r-- 1 root root 0 May 4 2017 bols
-rw-r--r-- 1 root root 0 Sep 25 21:40 bols
#ctime不会变为设定时间,但更新为当前服务器的时间

 

最新文章

  1. Android:TextView文字跑马灯的效果实现
  2. div+css页面右侧底部悬浮层
  3. 【转】移动前端不得不了解的html5 head 头标签
  4. JNI系列——PassData
  5. Linux/UNIX 定时任务 cron 详解
  6. JS-DOM 综合练习-动态添加删除班级成绩表
  7. Codeforces 467C George and Job(DP)
  8. APN 推送
  9. XMPP Server
  10. [转]使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单
  11. pyfits例子
  12. WindowsServer2012 R2 64位中文标准版(IIS8.5)下手动搭建PHP环境详细图文教程(二)安装IIS8.5
  13. 源码包安装mysql5.6
  14. day061 cookie和session
  15. https://leetcode.com/problems/palindromic-substrings/description/
  16. [git] 关闭 git branch 的pager
  17. 学习笔记之NumPy
  18. python学习笔记_week22
  19. springboot 前后端分离项目跨域配置
  20. ASP.NET MVC学习笔记-----Filter(2)

热门文章

  1. 全网最详细的Linux命令系列-cp命令
  2. 【解决】Could not GET 'https://maven.google.com
  3. 使用Vanilla框架制作时间倒数器 ——JavaScript
  4. Toolkit 大更新:UI 更美观,用起来更方便!
  5. codeup 1918 简单计算器
  6. 前端面试回顾(1)---javascript的面向对象
  7. Spring Cloud Alibaba(2)---RestTemplate微服务项目
  8. sql指令,增,删,查,改
  9. 2020北航OO第四单元总结
  10. 共享内存多进程key value操作