Разбросаны по нескольким файловым системам У меня есть множество файлов .webarchive, которые были сохранены OmniWeb. Так, например:
sh-3.2$ ls -@ 2012-03-19.webarchive
2012-03-19.webarchive
sh-3.2$ ls -@l 2012-03-19.webarchive
-rw-r--r--@ 1 gjp22 staff 3722852 19 Mar 2012 2012-03-19.webarchive
com.apple.quarantine 26
sh-3.2$ xattr -l 2012-03-19.webarchive
com.apple.quarantine: 0000;4f66fcc8;OmniWeb.app;
Эти файлы считаются от неизвестного разработчика. Я могу открыть каждый с помощью Control-щелчка, но это утомительно.
Итак, я бы хотел, чтобы команда, возможно, с использованием find(1) удаляла все такие расширенные атрибуты .
find . -iname '*.webarchive' -print0 | xargs -0 xattr -d com.apple.quarantine
find . -iname '*.webarchive' -exec xattr -d '{}' \;
).Объяснение разницы эффективности:
Всякий раз, когда это позволяет синтаксис, например, в этом случае, xargs собирает одну или несколько командных строк, таких какxattr -d com.apple.quarantine /path/to/file1.webarchive /path/to/fileN.webarchive
в то время как, на мой взгляд, легче запомнить - только find
версия повторяет команду каждый раз:xattr -d com.apple.quarantine /path/to/file1.webarchive ; xattr -d com.apple.quarantine /path/to/fileN.webarchive
вот более автоматизированный способ сделать это:
открыть автоматор - выбрать "сервис"
вставить это
on run {input, parameters}
tell application "Terminal"
activate
set filesString to ""
repeat with file_ in input
set filesString to filesString & " " & quoted form of (POSIX path of file_)
end repeat
do script "xattr -r -d com.apple.quarantine" & filesString
end tell
return input
end run
Убедитесь, что «файлы или папки» выбраны для «Сервис получает выбранные». Убедитесь, что «Finder» выбран для «in»
затем нажмите «Сохранить» и назовите его «не карантин», перейдите к папке или файлу, который вы хотите удалить из карантина, щелкните правой кнопкой мыши и выберите «не карантин».
Версия xattr, которая у меня есть в моей macOS 11.6, утверждает, что имеет ключ -r
-r: действовать рекурсивно
Таким образом, вы должны иметь возможность использовать
xattr -d com.apple.quarantine -r file.webarchive
xattr -d com.apple.quarantine -r my_dir/
Слипп Д. Томпсон
find
будет выполнять такую же эффективную сборку пути к файлу, если вы закончите его\+
вместо\;
.