问题标签 [fswatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
269 浏览

bash - 在后台进程中写入文件

我正在尝试创建一个脚本来处理目录中的修改/新文件(这是从远程目录镜像的,lftp但这是另一回事)。

为了跟踪被修改的文件,我使用fswatch. 然后,我将检测到的文件fswatch从 xml 转换为 json 并将它们存储在单独的目录中。为了确保一旦没有更多文件要处理(当镜像作业结束时)我可以停止此转换,我会跟踪完成后由镜像过程创建的文件。

我的脚本有效,但是由于一个奇怪的原因,我在镜像作业完成之前看不到 json 文件。就好像转换后的文件存储在内存中的某个地方,一旦“停止”条件为真,这些文件就会神奇地出现在目录中。

这是正常行为吗?如何使文件在处理后立即显示?我可以通过哪些方式优化我想要实现的目标?(我是 bash 的新手......和一般的编程。)

这是我使用的脚本:

编辑:所以遵循@snorp 的评论,如果我添加sync到脚本中,那么我能够“实时”更新文件。否则,文件就在空中......如果一个进程在后台运行并且我输入sync我会得到一个似乎“冻结”的新进程(根据top输出我可以看到它正在做某事,但我没有查看写入文件夹的已处理文件,就像它们应该(最终)那样)。有什么方法可以强制 OSX 将这些文件实际写入磁盘(不包括脚本中的同步)?

0 投票
1 回答
372 浏览

regex - 具有不同扩展名的 Fswatch

我需要查看具有不同扩展名的文件,并在每次更改后运行 .sh 命令。使用 fswatch,我已经能够分别观看每个扩展,例如:

如果我在不同的终端窗口中运行这些命令,我​​会得到我想要的......在具有 (html|scss|js) 扩展名的文件发生更改后触发 .sh 命令。

但是,我无法将其合并到一个命令中。

如果您需要知道的话,这是在 MaxOS El Capitan 上运行的。

0 投票
2 回答
765 浏览

bash - 将 fswatch 输出通过管道传输到 shell 脚本中

我正在尝试使用以下技术将 fswatch 的输出通过管道传输到 shell 脚本中的多个命令:

而不是 [command] 我放了 shell 脚本路径。这是我的命令行:

脚本如下:

抱歉,我对 shell 脚本没有经验。如何将 fswatch 输出通过管道传输到脚本中?

谢谢你。

0 投票
0 回答
186 浏览

shell - 将 fswatch 与 imgcat 一起使用

每当文件更新或添加到目录时,我都会尝试在终端中自动显示图像。imgcat我可以在 iTerm2中手动执行此操作,并且可以fswatch在文件更改时正确报告。但我不能让他们一起玩。我认为这会起作用,但它报告xargs: imgcat: No such file or directory

0 投票
2 回答
609 浏览

makefile - fswatch-ing 文件列表,仅生成已更改的文件

这是使用 pandoc 编译mdpdf. 该make watch命令监视更改的md文件(使用fswatch),如果是则触发make

目前,watch不是很有选择性:即使只md更改了一个文件,它也会构建所有可能的目标( 中的所有内容PDFS)。我想要这个代码的一个版本,它可以监视所有文件的更改,但只为更改md的文件构建一个。(我意识到这对于目前的案例来说毫无意义,但它在另一个更复杂的用例中很有用。)pdf md

0 投票
2 回答
232 浏览

bash - fswatch 与 grep 不管道

每当我保存时,我都想使用 fswatch 通过我的单元测试框架运行文件。

作为测试,我运行 fswatch 并在我的文本编辑器中对 /my/path/test.txt 进行细微更改,并获得我期望的输出:

但是如果我在中间插入一个 grep 并重复这个过程,我不会得到任何输出:

我究竟做错了什么?

编辑

fswatch + grep 本身可以正常工作

0 投票
1 回答
774 浏览

bash - 使用 osx 中的 xargs 接受 fswatch 中更改文件的名称

在 osx 中,我试图检测何时将新文件添加到文件夹中,然后执行脚本来处理该新文件。看起来很简单,对吧?

我正在这样做:

这将调用 shell 脚本 detectmotion.sh,其中包括:

至少现在。我只想将更改文件的文件名传递给detectmotion.sh

我花了 1 美元买了一个空白

谁能看到我在这里做错了什么?

提前致谢!

0 投票
1 回答
61 浏览

watchkit - 是否有可靠的目录观察器可用于在任何修改时运行 shell 命令?

我正在寻找一种工具(最好是 X 平台),它可以监视目录的整个树并在它发生时运行 shell 命令。

我之前尝试过很多工具,例如fswatch, chokidar, findr...

但是它们有一些奇怪的问题,例如,当监视目录中的文件被删除时,其中一些命令会终止。

有没有我缺少的工具?工具最好是X平台。

0 投票
2 回答
1081 浏览

bash - rsync,包含300万个文件的目录,能跟得上吗?

我正在通过终端使用 bash 命令在 Mac 计算机上工作。

我正在运行一个 DNA 测序仪,它在 48 小时内生成约 3-5 百万个文件。出于速度原因,这些文件被保存到计算机的 SSD。我想使用 fswatch 和 rsync 命令来监视目录并将这些文件传输到服务器,因为它们正在生成以减少排序后的长传输时间。

这是我想出的命令。

但我担心由于大量文件 > 300 万且总大小 > 100gb,这些工具可能难以跟上。有更好的策略吗?

谢谢你的帮助!

0 投票
1 回答
1420 浏览

node.js - NodeJs fs.watch/FSWatcher 错误

你好我使用以下,

Ubuntu 17.04 节点:v6.11.2 NPM:v3.10.10

在安装我的项目依赖项时,我收到有关安装 fsevents 的警告(此错误。我忽略了这一点,并使用 Gulp 运行了项目。

我收到以下错误,

我只在我正在使用的这台机器上得到这个。这些项目在其他系统上运行良好。

谁能帮我解决这个问题?