首页 > 解决方案 > 在 Automator 中搜索所有外部驱动器

问题描述

我正在尝试进行自动操作,在所有外部驱动器中搜索.txt文件,然后将其复制到内部 Macintosh HD 驱动器上的文件夹中。

我遇到的问题是,我无法找到一种方法来做到这一点,而不必每次都指定每个外部驱动器的名称,但每次都是一个新的,而且不可预测。有什么方法可以“间接”指定外部驱动器的路径(我想像一个指向 USB 端口的“指针”)?

我知道隐藏的/Volumes文件夹,但是这也会在所有 Macintosh HD 中搜索.txt文件,这是我不想要的……

提前致谢!

标签: applescriptautomator

解决方案


我知道您提到了AppleScript,但是,这可以在Terminal中更轻松、更直接地完成。

您无需担心Macintosh HD/Volumes因为它是符号链接find如果没有适当的选项,将不会遍历符号链接

要在Automator工作流中使用以下示例 shell 脚本 代码,只需添加一个Run Shell Script操作,在更改文件要复制到的目录时添加以下代码行。 '/path/to/destination'

find /Volumes -type f -iname '*.txt' -print0 | xargs -I '{}' -0 cp -a '{}' '/path/to/destination'

这将找到外部磁盘上的所有.txt 文件并将它们复制到目标位置,同时覆盖目标位置中的现有文件

就是这样,只需在工作流程中完成一个操作即可。

此外,如果您在没有连接外部磁盘的情况下运行它,请不要担心,因为它基本上什么都不做。


笔记:

如果由于某种原因您需要使用Run AppleScript action,您仍然可以使用AppleScript命令使用示例shell 脚本 代码,例如:do shell script

do shell script "find /Volumes -type f -iname '*.txt' -print0 | xargs -I '{}' -0 cp -a '{}' '/path/to/destination'"

推荐阅读