у меня есть скрипт AppleScript, который запускает стресс-тест. Частью теста является открытие, сохранение и закрытие определенных файлов. Каким-то образом файлы подобрали некоторые «расширенные атрибуты», которые запрещают сохранение файлов. Это приводит к провалу стресс-теста.
Как удалить расширенные атрибуты?
macos
attributes
приручает
источник
источник
Ответы:
Используйте
xattr
команду. Вы можете проверить расширенные атрибуты:и используйте
-d
опцию для удаления одного расширенного атрибута:Вы также можете использовать
-c
опцию для удаления всех расширенных атрибутов:xattr -h
покажет вам параметры командной строки, и у xattr есть страница руководства .источник
-c
у меня не работает (OS X 10.6.8).-d
также не имел никакого эффекта, хотя и не жаловался. Мне пришлось явно назвать каждый расширенный атрибут следующим образом:xattr -rd <attrname> <folder/file>
(рекурсивно удаляет). Чтобы узнать присутствующие атрибуты (вероятно, те же атрибуты во всем дереве каталогов), используйтеxattr <dir/file>
как в ответе выше.xattr -c
работает нормально для меня (и успешно удаляет все метаданные).Удаление одного атрибута в одном файле
Смотрите ответ Бавариуса.
Чтобы удалить все расширенные атрибуты в одном файле
Используйте
xattr
с-c
флагом, чтобы "очистить" атрибуты:Удалить все расширенные атрибуты во многих файлах
Чтобы рекурсивно удалить расширенные атрибуты для всех файлов в каталоге, объедините
-c
флаг «clear» с-r
рекурсивным флагом:Совет для пользователей Mac OS X
Есть длинный путь с пробелами или специальными символами?
Откройте
Terminal.app
и начните вводить текстxattr -rc
, включите завершающий пробел, а затем перетащите файл или папку вTerminal.app
окно, и он автоматически добавит полный путь с правильным экранированием.источник
-c
не будет работать на OS X 10.5:option -c not recognized
. Мы используем один для тестирования на Apple PowerPC. Похоже , что версия нижнего уровня в OS X поддержек-l
,-p
,-w
и-d
.. textClipping
как описано в apple.stackexchange.com/questions/301871/…Попробуйте использовать:
Это заботится о рекурсивном удалении противного атрибута везде.
источник
Еще один рекурсивный подход:
источник
-c
не будет работать на OS X 10.5:option -c not recognized
. Мы используем один для тестирования на Apple PowerPC. Похоже , что версия нижнего уровня в OS X поддержек-l
,-p
,-w
и-d
.Ответ (отдельные файлы)
1. Показать ключи для использования в выборе.
2. Выберите ключ для удаления.
3. Еще раз продемонстрируйте ключи, чтобы убедиться, что они были удалены.
4. И, наконец, УДАЛИТЕ ВСЕ ключи для определенного файла
Ответ (Все файлы в каталоге)
1. Показать ключи для использования в выборе.
2. Удалите специальный ключ для каждого файла в каталоге
3. Удалите ВСЕ ключи на КАЖДОМ ФАЙЛЕ в каталоге
ошибки
Я хотел исправить ошибку, которую получают люди. Потому что ошибки приводили меня в бешенство ... На Mac, если вы устанавливаете
xattr
на python, у вашей среды могут быть проблемы.Так что в одном из примеров, где
-c
не будет работать в xargs, потому что в bash вы по умолчанию используете версию без Python.Работает с
-c
НЕ работает с
-c
Моя оболочка / терминал по умолчанию имеет значение / usr / local / bin / xattr, потому что my
$PATH
/usr/local/bin:
- это значение,/usr/bin:
которое, по-моему, является значением по умолчанию.Я могу доказать это, потому что, если вы попытаетесь удалить питона,
xattr
вы увидите:обходные
Исправить
option -c not recognized
ошибки.xattr
вас может быть:pip3 uninstall xattr
Terminal
окна и выйдитеTerminal
Terminal
окно.xattr
команду и теперь она должна работать.ИЛИ
для любых
Shell
команд вTerminal
Пример:
Версия Python
xattr
вообще не обрабатывает изображения:Man Pages
MAN PAGE для OSX xattr
MAN PAGE для Python xattr ВЕРСИЯ 0.6.4
Спасибо за прочтение!
источник