这正是我想要做的事情:有一个脚本,在检测到新文件已被放入预定义目录时,运行一个小文件名扫描&移动算法。
简单示例:我选择监控/ home / myname / Downloads。说该文件夹的状态已更改,someClass.java刚刚添加。我的算法决定将它发送到/ workspace并执行它。
编写算法很简单。我问的是如何实现这种监控。 我看到2个选项: - 找到Linux自己的文件操作脚本并在那里添加我的代码 - 有一个正常的bash脚本,以某种方式得到通知并在文件夹中发生事件时运行
还是我完全离开了?
答案 0 :(得分:4)
扩展Ignacio建议使用incron:Linux提供inotify(7)
机制,允许程序观察文件和目录进行修改。 (这对于KDE和GNOME explorer.exe
克隆来说特别好 - 允许目录列表在添加或删除新文件时立即更新,而不会对目录内容进行busy-wait不断的重新轮询。)
直接使用inotify_add_watch(2)
是繁琐的编程。我很高兴找到incron
(再次感谢Ignacio),这听起来像是一个完美的可重用工具,可以使用声明语法轻松地为每个人使用inotify(7)
。
答案 1 :(得分:1)
正如@ignocio所说,incron
会奏效。但是,如果你刚开始,这里有一些更常见的东西。
查看cron
。它将允许您以设定的时间间隔运行脚本。对于这种情况不太好,但你可以每分钟,每小时,每天,每月,每周等运行一次,等等。
无论哪种方式,在脚本中,执行ls
来获取相应目录中的所有文件。将它们放在一个数组中,循环遍历它们,然后根据需要进行处理。