entr 是一个小巧的命令行工具,用于在指定文件发生变化时自动运行命令。它读取一份文件列表并监听这些文件,一旦有改动便重新执行给定的命令,常用于自动重跑测试、重建文档或重启进程。

| 类型 | 文件监视执行 |
| 平台 | 类 Unix |
| 输入方式 | 标准输入文件列表 |
| 典型搭配 | find / ls |
| 特点 | 语言无关、轻量 |
entr 是一个体积极小的 Unix 命令行工具,其名称取自 event notify test runner。它从标准输入接收一份文件名列表,监听这些文件的变化,并在任一文件被修改时自动执行用户指定的命令,是构建轻量自动化反馈循环的经典方案。
开发中经常希望文件一保存就自动触发某个动作,例如重新运行测试、重新编译文档或重启服务。许多语言各有其专用的监视工具,而 entr 提供了一个通用、与语言无关的做法:把要监视的文件用管道喂给它,再附上要执行的命令即可。它遵循 Unix 小工具组合的哲学,常与 find、ls 等命令搭配使用。
entr 启动时从标准输入读取文件路径,并利用操作系统的文件变化通知机制对这些文件注册监听。当某个被监听文件发生写入或修改事件时,entr 便运行预设命令;它可配置在每次变化时终止并重启长驻进程,也可在触发前清屏,以便观察最新输出。由于它只处理启动时给定的文件列表,新增文件通常需要重新运行以刷新监听集合。
典型用法是保存源码后自动重跑测试,实现即时反馈;或在编辑文档时自动重新构建预览;也常用于开发服务器的自动重启。对于没有内建监视功能的工具链,entr 是一种通用补齐方式。
问:新建的文件会被 entr 自动监听吗?答:不会,entr 只监听启动时通过输入给定的那批文件,若目录中新增了文件,通常需要重新运行命令以生成新的文件列表并重建监听。
问:entr 能替代完整的构建系统吗?答:不能,它只负责在文件变化时触发命令,不做依赖分析或增量编译,复杂构建仍需交给 Make、Task 等专门工具,entr 更适合做即时反馈触发器。

| 类型 | 文件监视执行 |
| 平台 | 类 Unix |
| 输入方式 | 标准输入文件列表 |
| 典型搭配 | find / ls |
| 特点 | 语言无关、轻量 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧