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