我想使用 launchd 启动一个脚本来备份更改的文件。它看起来应该可以满足我的要求,但我不知道如何将更新文件的路径传递给 launchd 启动的脚本。因此,如果我正在观察目录 foo 并且文件 bar.txt 发生了更改,我该如何获取 launchd.plist 或它运行的脚本以获取 bar.txt 的值?
答案1
我还没有找到使用 launchd 执行此操作的任何方法。你能只使用 rsync 或其他东西吗?或者检查脚本中的修改日期,例如,如果它是 shell 脚本,则使用 find:
find /some/path -mindepth 1 -maxdepth 1 -mtime -20s
文件夹操作确实会将路径名作为参数,但它们仅在将文件添加到文件夹时运行,而不会在修改文件时运行。您可以使用 Automator 中的文件夹操作模板创建文件夹操作,或者保存如下所示的脚本,~/Library/Workflows/Applications/Folder Actions/
然后从文件夹操作设置中启用该脚本。
on adding folder items to this_folder after receiving these_items
say POSIX path of item 1 of these_items
end