问题标签 [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.
bash - 在后台进程中写入文件
我正在尝试创建一个脚本来处理目录中的修改/新文件(这是从远程目录镜像的,lftp
但这是另一回事)。
为了跟踪被修改的文件,我使用fswatch
. 然后,我将检测到的文件fswatch
从 xml 转换为 json 并将它们存储在单独的目录中。为了确保一旦没有更多文件要处理(当镜像作业结束时)我可以停止此转换,我会跟踪完成后由镜像过程创建的文件。
我的脚本有效,但是由于一个奇怪的原因,我在镜像作业完成之前看不到 json 文件。就好像转换后的文件存储在内存中的某个地方,一旦“停止”条件为真,这些文件就会神奇地出现在目录中。
这是正常行为吗?如何使文件在处理后立即显示?我可以通过哪些方式优化我想要实现的目标?(我是 bash 的新手......和一般的编程。)
这是我使用的脚本:
编辑:所以遵循@snorp 的评论,如果我添加sync
到脚本中,那么我能够“实时”更新文件。否则,文件就在空中......如果一个进程在后台运行并且我输入sync
我会得到一个似乎“冻结”的新进程(根据top
输出我可以看到它正在做某事,但我没有查看写入文件夹的已处理文件,就像它们应该(最终)那样)。有什么方法可以强制 OSX 将这些文件实际写入磁盘(不包括脚本中的同步)?
regex - 具有不同扩展名的 Fswatch
我需要查看具有不同扩展名的文件,并在每次更改后运行 .sh 命令。使用 fswatch,我已经能够分别观看每个扩展,例如:
如果我在不同的终端窗口中运行这些命令,我会得到我想要的......在具有 (html|scss|js) 扩展名的文件发生更改后触发 .sh 命令。
但是,我无法将其合并到一个命令中。
如果您需要知道的话,这是在 MaxOS El Capitan 上运行的。
bash - 将 fswatch 输出通过管道传输到 shell 脚本中
我正在尝试使用以下技术将 fswatch 的输出通过管道传输到 shell 脚本中的多个命令:
而不是 [command] 我放了 shell 脚本路径。这是我的命令行:
脚本如下:
抱歉,我对 shell 脚本没有经验。如何将 fswatch 输出通过管道传输到脚本中?
谢谢你。
shell - 将 fswatch 与 imgcat 一起使用
每当文件更新或添加到目录时,我都会尝试在终端中自动显示图像。imgcat
我可以在 iTerm2中手动执行此操作,并且可以fswatch
在文件更改时正确报告。但我不能让他们一起玩。我认为这会起作用,但它报告xargs: imgcat: No such file or directory
makefile - fswatch-ing 文件列表,仅生成已更改的文件
这是使用 pandoc 编译md
为pdf
. 该make watch
命令监视更改的md
文件(使用fswatch
),如果是则触发make
。
目前,watch
不是很有选择性:即使只md
更改了一个文件,它也会构建所有可能的目标( 中的所有内容PDFS
)。我想要这个代码的一个版本,它可以监视所有文件的更改,但只为更改md
的文件构建一个。(我意识到这对于目前的案例来说毫无意义,但它在另一个更复杂的用例中很有用。)pdf
md
bash - fswatch 与 grep 不管道
每当我保存时,我都想使用 fswatch 通过我的单元测试框架运行文件。
作为测试,我运行 fswatch 并在我的文本编辑器中对 /my/path/test.txt 进行细微更改,并获得我期望的输出:
但是如果我在中间插入一个 grep 并重复这个过程,我不会得到任何输出:
我究竟做错了什么?
编辑:
fswatch + grep 本身可以正常工作
bash - 使用 osx 中的 xargs 接受 fswatch 中更改文件的名称
在 osx 中,我试图检测何时将新文件添加到文件夹中,然后执行脚本来处理该新文件。看起来很简单,对吧?
我正在这样做:
这将调用 shell 脚本 detectmotion.sh,其中包括:
至少现在。我只想将更改文件的文件名传递给detectmotion.sh
我花了 1 美元买了一个空白
谁能看到我在这里做错了什么?
提前致谢!
watchkit - 是否有可靠的目录观察器可用于在任何修改时运行 shell 命令?
我正在寻找一种工具(最好是 X 平台),它可以监视目录的整个树并在它发生时运行 shell 命令。
我之前尝试过很多工具,例如fswatch
, chokidar
, findr
...
但是它们有一些奇怪的问题,例如,当监视目录中的文件被删除时,其中一些命令会终止。
有没有我缺少的工具?工具最好是X平台。
bash - rsync,包含300万个文件的目录,能跟得上吗?
我正在通过终端使用 bash 命令在 Mac 计算机上工作。
我正在运行一个 DNA 测序仪,它在 48 小时内生成约 3-5 百万个文件。出于速度原因,这些文件被保存到计算机的 SSD。我想使用 fswatch 和 rsync 命令来监视目录并将这些文件传输到服务器,因为它们正在生成以减少排序后的长传输时间。
这是我想出的命令。
但我担心由于大量文件 > 300 万且总大小 > 100gb,这些工具可能难以跟上。有更好的策略吗?
谢谢你的帮助!
node.js - NodeJs fs.watch/FSWatcher 错误
你好我使用以下,
Ubuntu 17.04 节点:v6.11.2 NPM:v3.10.10
在安装我的项目依赖项时,我收到有关安装 fsevents 的警告(此错误。我忽略了这一点,并使用 Gulp 运行了项目。
我收到以下错误,
我只在我正在使用的这台机器上得到这个。这些项目在其他系统上运行良好。
谁能帮我解决这个问题?