更新多个文件的访问时间的简单方法

更新多个文件的访问时间的简单方法

我有一个包含多个子文件夹和文件的文件夹。我在一台服务器上工作,任何超过 60 天的文件都会被自动删除。有哪些简单的命令可以更新文件的访问时间(atime),这样就不会发生这种删除(有时我已经超过 60 天不使用文件了,设置所有的访问时间是很痛苦的)再次文件夹)?

我想到了一个很粗暴的办法——使用

vim *
vim */* ... and so on

打开所有子文件夹,然后用 :q 关闭它们。然而,这又是一个乏味的过程。关于如何设置脚本或使用 vim 以外的工具有什么想法吗?

答案1

touch-- 更改文件访问和修改时间

触摸(1)

注意:虽然您可以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如果您想进一步查看,可以更改为另一个号码。

相关内容