在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