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编程接口部分截图:
点击图片可以看大图。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)