我想在我的Mac上监视一个文件夹,然后执行一个bash脚本,将刚刚移动到或在监视目录中创建的任何文件/文件夹的名称传递给它。
当前回答
看门狗是一个跨平台的python API,用于监视文件/目录,它有内置的“诡计”工具,允许您在事件发生时触发动作(包括shell命令)(包括新添加的文件,删除的文件和更改的文件)。
其他回答
Apple OSX文件夹操作允许您根据对文件夹采取的操作自动化任务。
我有一个关于这个的主旨,用法很简单
watchfiles <cmd> <paths...>
为了说明,下面的命令将在每次file1或file2更改时回显Hello World;默认的间隔检查是1秒
watchfiles 'echo Hello World' /path/to/file1 /path/to/file2
如果我想每5秒检查一次,我可以使用-t标志
watchfiles -t 'echo Hello World' /path/to/file1 /path/to/file2
-v开启verbose模式,显示调试信息 -q使监视文件安静地执行(将显示#,以便用户可以看到程序正在执行) -qq使监视文件完全安静地执行 -h显示帮助和用法
https://gist.github.com/thiagoh/5d8f53bfb64985b94e5bc8b3844dba55
下面是使用sschober工具的一行代码。
$ while true; do kqwait ./file-to-watch.js; script-to-execute.sh; done
我最终为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
这里有一个简单的单行替代方案,供那些没有watch命令但又想每3秒执行一次命令的用户使用:
而:;做您的命令;睡眠3;完成
这是一个无限循环,基本上与执行以下操作相同:
看-n3你的命令
推荐文章
- 警告用户/local/mysql/data目录不属于mysql用户
- 在Mac OS X上使用鼠标聚焦(加上自动提升)
- 我在哪里可以找到Mac OS X Lion的“make”程序?
- 当我没有Mac的时候,在Mac/Safari上测试web应用程序
- Angular中相当于AngularJS $watch的东西是什么?
- 在Mac上安装MySQL后,使用ALTER USER语句重置MySQL root密码
- my.cnf文件在macOS上的位置
- 如何从Mac OS X上卸载MySQL ?
- 查找当前可执行文件的路径,不包含/proc/self/exe
- 在Mac上安装R -警告消息:设置LC_CTYPE失败,使用“C”
- 为什么cURL返回错误“(23)Failed writing body”?
- 节点和错误:EMFILE,打开的文件太多
- 如何使用命令行工具为Mac OS X创建一个漂亮的DMG ?
- 由于环境错误无法安装包:[Errno 13]
- Mac压缩没有__MACOSX文件夹?