在Terminal-OS X Mavericks中使用find命令排除Library文件夹

时间:2015-04-22 18:29:03

标签: shell applescript find-util

我试图制作AppleScript,在用户的主文件夹中搜索名为 keyPRO 的特定文件夹。我在AppleScript中使用以下代码来执行此操作:

do shell script "find ~/ -name 'keyPRO'"

("〜/"表示在当前用户的主文件夹中搜索。)

令人讨厌的是每次我运行它时,终端在我的Library文件夹中搜索会导致"权限被拒绝"错误,以及其他随机的东西出现。

有没有办法排除用户的Library文件夹被搜索?

1 个答案:

答案 0 :(得分:0)

最初使用标记您的问题,或者更具体地说,会引起更多关注(并未在此处发挥作用 - AppleScript' s do shell script没有打开终端窗口,它只会创建一个 shell 子进程。)。

do shell script "find ~ -path ~/Library -prune -o -name 'keyPRO' -print"

将从您的查找命令中排除~/Library

在shell中,运行man find以获取有关find命令的更多信息。

但是,请注意,当您使用AppleScript的do shell script时,通常不会看到警告或错误消息,除非shell命令失败(报告非零退出代码)作为一个整体(在这种情况下,AppleScript会以shell错误消息引发错误作为描述)。

警告和错误消息将发送到 stderr 流,而do shell script默认仅捕获 stdout