我有一个包含多个子文件夹和文件的文件夹。我在一台服务器上工作,任何超过 60 天的文件都会被自动删除。有哪些简单的命令可以更新文件的访问时间(atime),这样就不会发生这种删除(有时我已经超过 60 天不使用文件了,设置所有的访问时间是很痛苦的)再次文件夹)?
我想到了一个很粗暴的办法——使用
vim *
vim */* ... and so on
打开所有子文件夹,然后用 :q 关闭它们。然而,这又是一个乏味的过程。关于如何设置脚本或使用 vim 以外的工具有什么想法吗?
答案1
touch
-- 更改文件访问和修改时间
注意:虽然您可以touch *
这样做,但不会递归到子目录,并且*
如果不存在文件,则会创建一个名为 的文件。更强大的解决方案是使用:
find /path/to/root_dir/ -exec touch -a {} \;
另外,您似乎只想更新目录的修改时间?这可能会更好,因为我确信该服务器上的删除策略是为了节省空间,并且您不想保留全部盲目的文件只是为了保存几个。要仅触摸目录,您可以执行以下操作:
find /path/to/root_dir/ -type d -exec touch -a {} \;
注意:touch
不带任何选项会将访问时间和修改时间都修改为当前时间,其中-a
只会更新访问时间。
此外,如果您想要一个命令来显示哪些文件即将删除,您可以运行类似的命令;
find /path/to/root_dir/ -atime +55
这将列出/path/to/root_dir/
访问时间超过 55 天的所有文件。这可能有助于让您知道哪些文件即将达到最长期限。55
如果您想进一步查看,可以更改为另一个号码。