如何检测子目录中的某个文件是否已更改?

时间:2015-05-29 17:26:20

标签: linux console sh

基本上我有一个大目录(> 10GB)(每个子目录只有几个其他子目录)并且想要对任何更改的文件做某事。我无法浏览所有文件并检查,因为它需要很长时间并占用我CPU的90%左右:(。

这基本上是这样的:

dir
dir/subA
dir/subA/subAsubA
dir/subA/subAsubB
...
dir/subB
dir/subB/subBsubA
dir/subB/subBsubB
...
dir/SubC
dir/SubD
...

我的想法是这样的(文件"测试"在subBsubA chaged中):

Check dir
 -> dir changed
   -->Check subA
      -> subA didn't change
   -->Check subB
      -> subB changed
      --> Check subBsubA
          -> subBsubA changed
             --> Check all files

但遗憾的是,文件的更改只会影响直接父目录的修改日期:(

1 个答案:

答案 0 :(得分:4)

正如@Aereaux指出的那样,您可能需要inotify,自2.6.13以来在Linux中可用。见http://en.wikipedia.org/wiki/Inotify

还有inotify-tools可用于命令行使用。 http://techarena51.com/index.php/inotify-tools-example/