在终端中使用 find 命令排除库文件夹–OS X Mavericks
Exclude Library folder from being searched with find command in Terminal–OS X Mavericks
我正在尝试创建一个 AppleScript 来搜索用户主文件夹中名为 keyPRO 的特定文件夹。我在我的 AppleScript 中使用以下代码来执行此操作:
do shell script "find ~/ -name 'keyPRO'"
(“~/”表示在当前用户的主文件夹中搜索。)
令人恼火的是,每次我 运行 它时,终端都会在我的库文件夹中搜索,这会导致 "Permission denied" 错误以及其他随机内容出现。
有没有办法将用户的 Library 文件夹排除在搜索范围之外?
最初用 shell or, more specficially, find-util would have gotten it more attention (terminal 标记您的问题在这里不起作用 - AppleScript 的 do shell script
不会打开终端 window,它只会创建一个 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.
我正在尝试创建一个 AppleScript 来搜索用户主文件夹中名为 keyPRO 的特定文件夹。我在我的 AppleScript 中使用以下代码来执行此操作:
do shell script "find ~/ -name 'keyPRO'"
(“~/”表示在当前用户的主文件夹中搜索。)
令人恼火的是,每次我 运行 它时,终端都会在我的库文件夹中搜索,这会导致 "Permission denied" 错误以及其他随机内容出现。
有没有办法将用户的 Library 文件夹排除在搜索范围之外?
最初用 shell or, more specficially, find-util would have gotten it more attention (terminal 标记您的问题在这里不起作用 - AppleScript 的 do shell script
不会打开终端 window,它只会创建一个 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.