touch 修改文件的时间戳(包括批量修改)


  在HPC上算DNS,有刚两个月左右的时间。前几天收到邮件通知说,在HPC上超过60天的文件将被清理。因此,我需要修改文件的时间戳(time stamp),以免文件被清理。

  linux 文件有三个时间戳,分别是:Access time, Modify time, Change time。 即访问时间,修改时间,和改变时间。

root@dschen-vm:/home/dschen/Desktop/11# stat 1
  File: 1
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d    Inode: 1204601     Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/  dschen)   Gid: ( 1000/  dschen)
Access: 2020-05-13 15:34:43.194254878 -0400 Modify: 2020-05-13 15:33:50.000000000 -0400 Change: 2020-05-13 15:34:43.190254895 -0400
 Birth: -

  Access time: 即最近一次访问文件的时间,只要打开或者进入该文件,这个时间就会更新。

  Modify time:即最近一次修改的时间。

  Change time:最近一次修改属性的时间。

  利用 ls -l 查询的时间通常是Modify time。我在这里需要修改的也是Modify time。下面讲怎么修改。

  touch 命令可以修改文件的时间戳,如将文件时间戳修改为2020年5月13日12点12分50秒:

touch -t 202005131212.50 file

  这条命令一次只可以修改一个文件,对于我的这种情况,需要修改的文件有非常多,那么就需要用到批量修改:

  (批量修改当前目录下所有文件/文件夹的时间戳)

find ./ * -exec touch -t 202005131212.12 {} \;

  对于很多文件来讲,会需要多一点时间来执行。完成之后,利用

ls -l

  查看文件的时间戳,发现全部都已经修改为我指定的时间了。

 

  本文参考:http://www.piaoyi.org/linux/linux-touch-changetime.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM