如何在 Unix 上修改文件以避免文件清除策略?

如何在 Unix 上修改文件以避免文件清除策略?

我们的集群有一项政策,即 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

相关内容