如何检测子目录中的某些文件是否已更改?
How can I detect if some file in a subdir changed?
基本上我有一个大目录 (>10GB)(每个子目录只有几个其他子目录)并且想对任何更改的文件执行某事。我不能只浏览所有文件并检查,因为它需要很长时间并且使用了我 CPU 的大约 90% :(.
基本上是这样的:
dir
dir/subA
dir/subA/subAsubA
dir/subA/subAsubB
...
dir/subB
dir/subB/subBsubA
dir/subB/subBsubB
...
dir/SubC
dir/SubD
...
我的想法是这样的(文件 "test" in subBsubA chaged):
Check dir
-> dir changed
-->Check subA
-> subA didn't change
-->Check subB
-> subB changed
--> Check subBsubA
-> subBsubA changed
--> Check all files
但遗憾的是,文件的更改只会影响直接父目录的修改日期:(
正如@Aereaux 指出的那样,您可能需要 inotify
,自 2.6.13 起在 Linux 中可用。参见 http://en.wikipedia.org/wiki/Inotify
还有 inotify-tools
可用于命令行使用。
http://techarena51.com/index.php/inotify-tools-example/
基本上我有一个大目录 (>10GB)(每个子目录只有几个其他子目录)并且想对任何更改的文件执行某事。我不能只浏览所有文件并检查,因为它需要很长时间并且使用了我 CPU 的大约 90% :(.
基本上是这样的:
dir
dir/subA
dir/subA/subAsubA
dir/subA/subAsubB
...
dir/subB
dir/subB/subBsubA
dir/subB/subBsubB
...
dir/SubC
dir/SubD
...
我的想法是这样的(文件 "test" in subBsubA chaged):
Check dir
-> dir changed
-->Check subA
-> subA didn't change
-->Check subB
-> subB changed
--> Check subBsubA
-> subBsubA changed
--> Check all files
但遗憾的是,文件的更改只会影响直接父目录的修改日期:(
正如@Aereaux 指出的那样,您可能需要 inotify
,自 2.6.13 起在 Linux 中可用。参见 http://en.wikipedia.org/wiki/Inotify
还有 inotify-tools
可用于命令行使用。
http://techarena51.com/index.php/inotify-tools-example/