我们的集群有一项政策,即 30 天内未修改或访问的任何文件都将被删除。我有一个项目正在运行,我想保留所有文件直到完成它,是否可以通过执行以下操作来欺骗系统:
find ./ -type f -exec touch {} +
我已经尝试过了,似乎时间戳发生了变化,但这会欺骗系统认为文件实际上已被修改吗?
答案1
当然这应该有效。
但您可以通过检查“stat”命令来确定。
sh-4.3$ stat test.csv
File: 'test.csv'
Size: 871 Blocks: 8 IO Block: 4096 regular file
Device: 20fd4bh/2161995d Inode: 8389896 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ cg) Gid: ( 1000/ cg)
Access: 2016-01-06 05:29:32.220197637 +0000
Modify: 2016-01-06 05:29:32.220197637 +0000
Change: 2016-01-06 05:29:32.220197637 +0000
Birth: -
sh-4.3$
答案2
如果策略确实是“30 天内未修改或访问文件”,那么您可以通过运行touch -a
而不是普通的 来设置文件的访问时间touch
。这样做的优点是它不会破坏修改时间,因此不会破坏构建脚本,并且您可以继续使用修改时间来指示该文件版本的年龄。
您可以使用 来查看文件的访问时间ls -lu
。