我想在我的Mac上监视一个文件夹,然后执行一个bash脚本,将刚刚移动到或在监视目录中创建的任何文件/文件夹的名称传递给它。
当前回答
您可能想看一看(或者扩展一下)我的小工具kqwait。目前它只是坐在那里等待单个文件上的写事件,但是kqueue架构允许分层事件堆叠…
其他回答
我最终为macOS做了这个。我相信这在很多方面都很糟糕:
#!/bin/sh
# watchAndRun
if [ $# -ne 2 ]; then
echo "Use like this:"
echo " $0 filename-to-watch command-to-run"
exit 1
fi
if which fswatch >/dev/null; then
echo "Watching $1 and will run $2"
while true; do fswatch --one-event $1 >/dev/null && $2; done
else
echo "You might need to run: brew install fswatch"
fi
这里只是提到,当文件发生变化时,entr可以作为OSX上运行任意命令的替代选项。我发现它既简单又有用。
在macos上酿造安装入口 在Debian/Ubuntu上安装entr
Apple OSX文件夹操作允许您根据对文件夹采取的操作自动化任务。
我的fswatch的分支提供了inotifywait -m的功能,稍微少一点(没有等待,更多!)我在Linux上使用inotifywait…)解析友好的输出有很多问题。
它是对原始fswatch的改进,因为它通过STDOUT发送更改后的文件的实际路径,而不是要求您提供它所派生的程序。
它是我用来实现自动化的一系列可怕的bash脚本的坚实基础。
(这是跑题了)Linux上的inotifywait,另一方面,需要大量的拼凑,我仍然没有找到一个好方法来管理它,尽管我认为基于node.js的东西可能是票据。
如果你想使用NodeJS,你可以使用一个名为chokidar(实际上是chokidar-cli)的包来监视,然后使用rsync (Mac包含):
Rsync司令部:
$ rsync -avz——排除'some-file'——排除'some-dir'。/的/我的/目的地”
Chokidar cli(通过npm全局安装):
Chokidar \"**/*\" -c \"your-rsync-command-above\"
推荐文章
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- “你有邮件”的消息在终端,os X
- Mac OS X中的环境变量
- 如何从macOS完全卸载蟒蛇
- 如何配置Mac OS X术语,使git有颜色?
- 我如何确定文件编码在OS X?
- 使iTerm以与其他操作系统相同的方式翻译“元键”
- 错误:无法在ARM处理器上的Homebrew中安装英特尔默认前缀(/usr/local)
- 在Mac OS X上哪里安装Android SDK ?
- Mac/OS X上的/var/lib/docker在哪里
- Xcode构建失败“架构x86_64未定义的符号”
- 在OSX 10.11中安装Scrapy时,“OSError: [Errno 1]操作不允许”(El Capitan)(系统完整性保护)
- 如何在Mac OS X 10.6中使硬件发出哔哔声
- 从Cocoa应用程序执行一个终端命令