使用Automator检查文件夹/文件更改吗?


9

有没有一种方法可以检查文件夹/文件的更改(包括添加文件,删除文件,文件更改等)。Automator中的“文件夹操作”仅检查是否有新添加的文件。


我认为Automator不可能做到这一点。您可能可以使用某些脚本(如果需要它在Automator中工作,则可以执行脚本操作)进行某些操作,但是您必须运行工作流以检测自上次运行以来的更改。
jtjacques 2011年

Answers:


5

您可以使用以下命令添加“运行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等),该版本应具有更多功能。


1

我不知道使用Automator可以做到这一点的方法,但是App Store中有一个名为Folder Watch的应用程序可以满足您的要求。


1

因此,上次我检查时,Automater在后台使用Applescript编写动作脚本。Applescript没有太多的深度。尽管它可以获取目录中文件的列表(因此您可以找出什么时候被删除),但我不认为它可以计算出对文件的更改。

您真正需要利用的是文件系统通知。既然那是野兽,我会接受kraymer的建议并使用它。它具有钩子,可以在文件夹内容更改时执行。Lingon(另请参见其过时的SourceForge页面)是一个很棒的应用程序,可以帮助人们跳入已发布的目录。您可以编写自动化程序脚本/应用程序,以执行修改目录后计划执行的任何操作,并且只需启动任务即可进行调用。


1

您可以查看我的较早答案,但这听起来像您想要的

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.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.