在我拥有的系统上,文件通过一系列不同的机制上传到一个中央“传入”目录中。每天处理一次这些文件,然后将它们移到需要的位置(该逻辑与此处无关)。它们最终位于/files/
. 我想一个简单的(尽管在我的具体情况下不准确)是说以“a”开头的文件被移动到/files/a/afile
.
所以我在/files/
. 那太好了,它对我有用。但是,客户刚刚告诉我,如果可以有一个“最近添加”的目录来存放过去一周的文件,那就太好了。
我的第一个想法是创建一个名为/recent-files/
并扩展文件处理脚本的目录,以便在将文件移出后执行以下操作/incoming/
:
- 从内部删除所有文件
/recent-files/
- 扫描
/files/
一周内创建的任何文件(不是目录) - 为每个链接创建一个指向其真实路径的符号链接并将其粘贴
/recent-files/
听起来它会起作用,但我的 bash 在算术和文件创建日期方面仍然很弱。有人可以帮我制作一个find ... -exec ...
近似于第二部分和第三部分的声明吗?
当然,如果有另一种创建命令行和 NFS 可见“搜索目录”的方法,请告诉我。
如果在您的场景中使用Zeitgeist和 FUSE 是可行的,Zeitgeist Filesystem可以在用户空间文件系统中按时间对文件和其他 Zeitgeist 事件进行排序。
另一个(更简单)的解决方案可能是在脚本中使用类似fileschanged的东西来监视目录中的传入文件。
(当然,根据需要更改“文件”和“最近的文件”。)
-newer 中使用的“c”不是创建时间,而是 stat 显示的“更改”字段(命令,例如 man 1 stat)。*nix 文件系统目前不常见存储创建时间,但可以使用更改 ('c')、修改 ('m') 和访问 ('a') 时间。如果您的文件系统确实存储了创建时间,您可以使用“B”(“出生时间”)——如果它不受支持,您将立即收到一条错误消息。
您可以看到确切的截止日期: