Linux监听文件夹里文件的增删修改变化

Linux监听文件夹里文件的增删修改变化,第1张

2021-02-03 遇到的一点小问题

最近有个需求需要监听文件夹里文件的变化,网上找到 如何用 Shell 监控文件变化? ,安装 pacman -Sy inotify-tools ,参照 文档 试了下 inotifywait ,能实现挺多功能的。

据我所致,linux好像没有检测文件创建时间的命令,但是你可以根据最近修改的文件来判断,比如你可以列出最近修改的文件前10个文件,然后通过记录上次的已创建文件来判断这文件是都新建的。

列出文件修改时间可参考:网页链接

从编程实现上来说,linux下做这个事情,要比windows上做简单,windows上有相关API提供接口,比如VC下的ReadDirectoryChanges函数,但其实它的功能并不是很完善,我之前曾经做过一个windows下类似的工具,如果要做到很完善的功能,要涉及到windows底层驱动。而linux下做这个事情就简单多了,从内核2.6.13开始,inotify编程接口就已经被加入到系统内核中,用来监控文件系统事件,它能监控到的事件包含文件/文件夹的新建,删除,修改,属性被修改,打开等等,功能比windows API提供的要丰富得多。在linux下输入 man inotify即可查看该接口的编程手册,要实现对某个文件夹的监控,只需要使用该接口提供的inotify_init, inotify_add_watch,  inotify_rm_watch三个函数即可。具体可以百度inotify,很容易就能找到相关示例代码。

附Linux下inotify编程接口部分截图:

点击图片可以看大图。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8502442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存