- A+
Fswatch是一个免费的开源多平台文件更改监视器实用程序,可在修改或更改指定文件或目录的内容时通知我们。使用fswatch,我们可以轻松监控文件和/或目录中所做的更改。它支持所有操作系统,包括GNU / Linux,* BSD,Mac OS X,Solaris和Microsoft Windows等。在本简要指南中,我将向您展示如何在类Unix操作系统中使用fswatch监视文件更改。
监控类型
fswatch实现以下类型的监视器。
- 基于Apple OS X的文件系统事件API的监视器。
- 基于kqueue的监视器,FreeBSD 4.1中引入的通知接口。
- 基于Solaris内核的文件事件通知API及其派生的监视器。
- 基于inotify的监视器,一个Linux内核子系统,用于报告应用程序的文件系统更改。
- 基于ReadDirectoryChangesW的监视器,一种报告对目录的更改的Microsoft Windows API。
- 监视器定期对文件系统进行统计,将文件修改时间保存在内存中,并手动计算文件系统更改。
特征
关于这些功能,我们可以列出以下内容:
- 跨平台和开源实用程序。
- 支持许多特定于操作系统的API。
- 递归目录监控。
- 使用包含和排除正则表达式的路径过滤。
- 可定制的记录格式。
- 支持定期空闲事件。
- 还有很多。
在Linux中使用fswatch监视文件更改
由于fswatch实用程序在大多数Linux发行版的默认存储库中都不可用,因此您需要从源代码手动编译和安装最新版本,如下所述。
然后,从这里下载fswatch源文件。
$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz
解压缩:
$ tar -zxvf fswatch-1.9.3.tar.gz
进入文件夹:
$ cd fswatch-1.9.3/
最后,通过逐个运行以下命令来编译和安装fswatch。
$ ./configure
$ make
$ sudo make install
最后,运行以下命令刷新链接并缓存到动态库:
$ sudo ldconfig
如果不运行上述命令,则可能会在GNU / Linux系统中出现以下错误。
fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory
fswatch用法
使用fswatch没什么大不了的。fswatch的典型语法是:
$ fswatch [options] ... path-0 ... path-n
要测试fswatch的工作原理,请打开两个终端窗口(我们称之为终端1和终端2)。
在终端1中,运行fswatch命令以监视$ HOME目录。
$ fswatch /home/sk/
并且,在终端2中执行一些操作,例如创建文件/文件夹,删除文件,修改文件等。
无论您在终端2中做什么,都将在终端1上得到通知。请查看以下屏幕截图。
终端1 - fswatch命令正在运行,正在监视文件更改:
终端2 - 对文件/文件夹进行一些随机更改:
默认情况下,fswatch将在性能和资源消耗方面选择当前平台上可用的最佳监视器。在Linux中,默认监视器是 inotify。
要列出当前平台中的可用监视器(例如我们的Linux),请运行:
$ fswatch -M
或者,
$ fswatch --list-monitors
输出:
inotify_monitor poll_monitor
要使用特定监视器选项监视特定文件或目录,请运行:
$ swatch -m kqueue_monitor /home/sk/
默认情况下,fswatch将继续监视文件更改,直到您通过调用CTRL + C键手动停止它。
通过指定选项-1,您也可以在收到第一组事件后退出fswatch ,如以下命令所示:
$ fswatch -1 /home/sk/
此命令将在收到第一组事件后立即退出。
fswatch将监视指定路径中所有文件/文件夹的更改。如果要仅查看目录中所做的更改,请使用-d选项。
$ fswatch -d /home/sk/
当然,还有更多选择。请参阅手册页
$ man fswatch
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫