Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:更改操作系统源代码或自动启动脚本_Linux_Bash - Fatal编程技术网

Linux:更改操作系统源代码或自动启动脚本

Linux:更改操作系统源代码或自动启动脚本,linux,bash,Linux,Bash,这里正是我想要做的:有一个脚本,在检测到一个新文件被放入预定义的目录时,运行一个小的文件名扫描和移动算法 简单示例:我选择监视/home/myname/Downloads。假设该文件夹的状态已更改,则刚添加了someClass.java。我的算法决定将它发送到/workspace并执行它 编写算法很容易。我想问的是如何实现这种监控。 我看到了20种选择: -找到Linux自己的文件操作脚本并在那里添加我的代码 -有一个普通的bash脚本,当文件夹中发生内容时,它会以某种方式得到通知并运行 还是说

这里正是我想要做的:有一个脚本,在检测到一个新文件被放入预定义的目录时,运行一个小的文件名扫描和移动算法

简单示例:我选择监视/home/myname/Downloads。假设该文件夹的状态已更改,则刚添加了someClass.java。我的算法决定将它发送到/workspace并执行它

编写算法很容易。我想问的是如何实现这种监控。 我看到了20种选择: -找到Linux自己的文件操作脚本并在那里添加我的代码 -有一个普通的bash脚本,当文件夹中发生内容时,它会以某种方式得到通知并运行


还是说我完全疯了

扩展Ignacio的使用建议:Linux提供了一种
inotify(7)
机制,允许程序监视文件和目录的修改。(这对于KDE和GNOME
explorer.exe
clone来说尤其好——允许在添加或删除新文件时立即更新目录列表,而无需不断地重新轮询目录内容。)


直接使用
inotify\u add\u watch(2)
是一种繁琐的编程。我很高兴地发现
incron
(再次感谢Ignacio),它听起来像是一个完美的可重用工具,可以让每个人都用声明式语法轻松地使用
inotify(7)

正如@ignocio所提到的,
incron
将起作用。然而,如果你刚刚开始,这里有一些更常见的东西

查看
cron
。它将允许您以设置的时间间隔运行脚本。对于这种情况不是很好,但是您可以每分钟、每小时、每一天、每一个月、每一周的某一天等运行一次


无论如何,在脚本中,执行
ls
以获取相应目录中的所有文件。将它们放在一个数组中,循环通过它们,并根据需要进行处理。

是的,cron确实不适合这里,它要么成本太高,要么速度太慢。。。谢谢你!