安装 fswatch
需要安装 fswatch。可以使用 Homebrew 来安装:
brew install fswatch
创建启动脚本
创建一个脚本来启动 fswatch 并执行相应的操作。创建一个脚本文件,比如 watch_files.sh,并添加以下内容:
#!/bin/bash
# 监视目录中的文件更改并执行脚本
fswatch -0 /path/to/directory | xargs -0 -n 1 /path/to/script.sh
将 /path/to/directory 替换为要监视的目录,将 /path/to/script.sh 替换为要在文件更改时执行的 shell 脚本的路径。
创建启动项
创建一个 Launchd 启动项,以便在系统启动时运行脚本。创建一个 .plist 文件,比如 com.example.watchfiles.plist,并将以下内容添加到文件中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.watchfiles</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/path/to/watch_files.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
将 com.example.watchfiles 替换为自己的标识符,并将 /path/to/watch_files.sh 替换为您创建的脚本的路径。
安装启动项
将 .plist 文件复制到 LaunchAgents 目录下,然后使用 launchctl 命令加载启动项。在终端中执行以下命令:
sudo cp com.example.watchfiles.plist /Library/LaunchAgents/
sudo launchctl load /Library/LaunchAgents/com.example.watchfiles.plist
验证启动项
通过以下命令检查启动项是否成功加载:
sudo launchctl list | grep com.example.watchfiles
卸载 Launchd 启动项
查找启动项的标识符
需要知道要卸载的启动项的标识符。可以使用 launchctl list 命令来列出当前加载的所有启动项,然后找到想要卸载的启动项的标识符。
sudo launchctl list | grep com.example.watchfiles
卸载启动项
一旦找到了要卸载的启动项的标识符,可以使用 launchctl 命令卸载它。
sudo launchctl unload /Library/LaunchAgents/com.example.watchfiles.plist
删除启动项文件
最后,可以选择删除已加载的 .plist 文件,以彻底删除启动项。
sudo rm /Library/LaunchAgents/com.example.watchfiles.plist
这样就完成了从系统中移除 Launchd 启动项的步骤。