【发布时间】:2015-05-29 17:26:19
【问题描述】:
基本上我有一个大目录(>10GB)(每个子目录只有几个其他子目录)并且想要对任何更改的文件做某事。我不能只浏览所有文件并检查,因为它需要很长时间并且使用了大约 90% 的 CPU :(。
基本上是这样的:
dir
dir/subA
dir/subA/subAsubA
dir/subA/subAsubB
...
dir/subB
dir/subB/subBsubA
dir/subB/subBsubB
...
dir/SubC
dir/SubD
...
我的想法是这样的(subBsubA chaged 中的文件“test”):
Check dir
-> dir changed
-->Check subA
-> subA didn't change
-->Check subB
-> subB changed
--> Check subBsubA
-> subBsubA changed
--> Check all files
但遗憾的是,文件的更改只会影响直接父目录的修改日期:(
【问题讨论】:
-
会this 帮忙吗?
-
您想实时执行此操作,还是仅作为定期运行脚本的一部分?在前一种情况下,@Aereaux 的评论绝对适用。在后者中,只需使用
stat检查每个文件的“最后修改日期”以查看它最后一次更改的时间 - 可能将元数据存放在某个地方以便在下次运行时进行比较,或者只是检查它是否在当前日期/时间的某个阈值内... -
stackoverflow.com/questions/511463/…。这可能会有所帮助。
-
@twalberg Sth like
stat实际上是一个更好的解决方案,因为我无法确定脚本是否一直在运行,文件可能会被更改。但是就像我说的那样,为所有子目录执行此操作需要花费大量时间和资源,而且我认为不可能仅在一个父目录上执行此操作