Linux:更改操作系统源代码或自动启动脚本
这里正是我想要做的:有一个脚本,在检测到一个新文件被放入预定义的目录时,运行一个小的文件名扫描和移动算法 简单示例:我选择监视/home/myname/Downloads。假设该文件夹的状态已更改,则刚添加了someClass.java。我的算法决定将它发送到/workspace并执行它 编写算法很容易。我想问的是如何实现这种监控。 我看到了20种选择: -找到Linux自己的文件操作脚本并在那里添加我的代码 -有一个普通的bash脚本,当文件夹中发生内容时,它会以某种方式得到通知并运行Linux:更改操作系统源代码或自动启动脚本,linux,bash,Linux,Bash,这里正是我想要做的:有一个脚本,在检测到一个新文件被放入预定义的目录时,运行一个小的文件名扫描和移动算法 简单示例:我选择监视/home/myname/Downloads。假设该文件夹的状态已更改,则刚添加了someClass.java。我的算法决定将它发送到/workspace并执行它 编写算法很容易。我想问的是如何实现这种监控。 我看到了20种选择: -找到Linux自己的文件操作脚本并在那里添加我的代码 -有一个普通的bash脚本,当文件夹中发生内容时,它会以某种方式得到通知并运行 还是说
还是说我完全疯了 扩展Ignacio的使用建议:Linux提供了一种
inotify(7)
机制,允许程序监视文件和目录的修改。(这对于KDE和GNOMEexplorer.exe
clone来说尤其好——允许在添加或删除新文件时立即更新目录列表,而无需不断地重新轮询目录内容。)
直接使用
inotify\u add\u watch(2)
是一种繁琐的编程。我很高兴地发现incron
(再次感谢Ignacio),它听起来像是一个完美的可重用工具,可以让每个人都用声明式语法轻松地使用inotify(7)
。正如@ignocio所提到的,incron
将起作用。然而,如果你刚刚开始,这里有一些更常见的东西
查看cron
。它将允许您以设置的时间间隔运行脚本。对于这种情况不是很好,但是您可以每分钟、每小时、每一天、每一个月、每一周的某一天等运行一次
无论如何,在脚本中,执行
ls
以获取相应目录中的所有文件。将它们放在一个数组中,循环通过它们,并根据需要进行处理。是的,cron确实不适合这里,它要么成本太高,要么速度太慢。。。谢谢你!