安装 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 启动项的步骤。