【问题标题】:Exclude Library folder from being searched with find command in Terminal–OS X Mavericks在 Terminal–OS X Mavericks 中使用 find 命令排除库文件夹
【发布时间】:2015-04-22 18:29:03
【问题描述】:

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

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

(“~/”表示在当前用户的主文件夹中搜索。)

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

有没有办法将用户的 Library 文件夹排除在搜索范围之外?

【问题讨论】:

    标签: shell applescript find-util


    【解决方案1】:

    最初用 或更具体地 标记您的问题会得到更多关注( 在这里不起作用 - AppleScript 的do shell script 不会打开终端窗口,它只是创建一个 shell 子进程。)。

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

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

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

    但是,请注意,当您使用 AppleScript 的 do shell script 时,通常不会看到警告或错误消息,除非 shell 命令 fails(报告非零退出代码)作为一个整体(其中case AppleScript 以 shell 错误消息作为描述抛出错误)。

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

    【讨论】:

    • 非常感谢,这成功了!对我来说有点长,但这会做。这是我的第一个问题,所以我希望你能原谅我是一个nooby tagger。
    • @TheWiseTurtle:我的荣幸;很高兴听到。不用担心重新标记;我们都曾经是菜鸟。
    猜你喜欢
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 2013-12-02
    • 2010-10-06
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多