Исключить папку библиотеки из поиска с помощью команды поиска в Terminal–OS X Mavericks
Я пытаюсь создать AppleScript, который ищет определенную папку с именем keyPRO внутри домашней папки пользователя. Я использую следующий код в моем AppleScript, чтобы сделать это:
do shell script "find ~/ -name 'keyPRO'"
("~/" Означает поиск в домашней папке текущего пользователя.)
Что раздражает, так это то, что каждый раз, когда я запускаю его, Терминал выполняет поиск в моей папке Библиотеки, которая вызывает ошибку "Отказано в доступе", а также другие случайные вещи, которые появляются.
Есть ли способ исключить папку пользователя библиотеки из поиска?
1 ответ
Первоначально пометка вашего вопроса с помощью shell или, более конкретно, find-util, привлекла бы к нему больше внимания ( терминал не вступает в игру здесь - AppleScript's do shell script
не открывает окно терминала, оно просто создает дочерний процесс оболочки.).
do shell script "find ~ -path ~/Library -prune -o -name 'keyPRO' -print"
исключит ~/Library
из вашей команды поиска.
Из оболочки беги man find
для получения дополнительной информации о find
команда.
Тем не менее, обратите внимание, что вы не увидите обычные предупреждения или сообщения об ошибках при использовании AppleScript do shell script
, если команда оболочки не выполнена (сообщает ненулевой код завершения) в целом (в этом случае AppleScript выдает ошибку с сообщением об ошибке оболочки в качестве описания).
Предупреждения и сообщения об ошибках отправляются в поток stderr, тогда как do shell script
по умолчанию захватывает только стандартный вывод.