有没有一种方法可以检查文件夹/文件的更改(包括添加文件,删除文件,文件更改等)。Automator中的“文件夹操作”仅检查是否有新添加的文件。
有没有一种方法可以检查文件夹/文件的更改(包括添加文件,删除文件,文件更改等)。Automator中的“文件夹操作”仅检查是否有新添加的文件。
Answers:
您可以使用以下命令添加“运行Shell脚本”操作:
find <directory> -newermm <reference_file>
这将为您<directory>
提供自上次更改以来已更改的所有文件和目录<reference_file>
。只要确保您<reference_file>
每次运行Automator脚本时都进行修改即可。
还可以查看查找手册页(man find
在终端中输入)以获取更多选项。查找功能非常强大,进一步完善搜索通常需要几个附加选项。例如,仅搜索在之后修改的目录<reference_file>
:
find <directory> -type d -newermm <reference_file>
如果OSX附带的版本不够,您也可以尝试使用随附的版本findutils
(棕色,macports等),该版本应具有更多功能。
因此,上次我检查时,Automater在后台使用Applescript编写动作脚本。Applescript没有太多的深度。尽管它可以获取目录中文件的列表(因此您可以找出什么时候被删除),但我不认为它可以计算出对文件的更改。
您真正需要利用的是文件系统通知。既然那是野兽,我会接受kraymer的建议并使用它。它具有钩子,可以在文件夹内容更改时执行。Lingon(另请参见其过时的SourceForge页面)是一个很棒的应用程序,可以帮助人们跳入已发布的目录。您可以编写自动化程序脚本/应用程序,以执行修改目录后计划执行的任何操作,并且只需启动任务即可进行调用。
您可以查看我的较早答案,但这听起来像您想要的
fs_usage -f filesys
启动不是更改文件的方法,fs_usage使用为聚光灯供电的底层计算机。
编辑:我在这里完全错了。已启动具有所需的确切功能,即:在文件或目录上执行某些操作。
您制作一个.plist文件。
尖叫“用于CONF文件的XML SUX!” (确实如此。)
并且您将要在启动的作业中使用下面的一个或两个键。
WatchPaths <array of strings>
This optional key causes the job to be started if any one of the listed
paths are modified.
QueueDirectories <array of strings>
Much like the WatchPaths option, this key will watch the paths for modi-
fications. The difference being that the job will only be started if the
path is a directory and the directory is not empty.