Я скопировал много файлов только для чтения из системы Windows на мой Mac. При просмотре информации для каждого файла с помощью «Получить информацию», я вижу, что они заблокированы. Я пишу сценарий bash для копирования некоторых файлов и получаю сообщение об ошибке «Операция не разрешена». Итак, сначала мне нужно разблокировать файлы. Поскольку я буду часто извлекать файлы из системы Windows, я хочу, чтобы мой скрипт разблокировал эти файлы.
Что такое команда терминала для разблокировки «заблокированных» файлов в OSX?
macos
command-line
file-attributes
Майкл Прескотт
источник
источник
schg
который является системным неизменяемым флагом (см. Developer.apple.com/library/mac/documentation/Darwin/Reference/… ) Команда для его очистки похожа:sudo chflags noschg PATH/TO/LOCKED/FILE
/bin/ls -lO /path/to/file
для просмотра macOSflags
в файлах. Обратите внимание на полный путь к команде macOS 'ls
'. Это необходимо, если у вас установлен GNU Coreutils.Вы также можете использовать
SetFile -a l
, хотя он делает то же самое, что иchflags nouchg
:-a l
сбрасывает бит для заблокированного атрибута. Вы можете установить SetFile, загрузив пакет инструментов командной строки из настроек XCode или с developer.apple.com/downloads .источник
Это полезно, если вы хотите выполнить поиск по всему каталогу и разблокировать все файлы.
В терминале
cd
к каталогуЭта команда находит и распечатывает их список .
Эта команда разблокирует их .
Вы можете использовать первую команду для двойной проверки того, что все файлы разблокированы после выполнения второй команды, вуаля!
источник
На самом деле для файла можно установить два флага блокировки:
uchg
иschg
. Файл с установленнымuchg
флагом является неизменным для обычных пользователей, но он может изменяться системой. Файл с установленнымschg
флагом является неизменным для всех. Оба флага могут быть установлены одновременно.Чтобы увидеть, какие флаги установлены в файле, используйте
Это заглавная буква o, а не ноль.
Чтобы однозначно разблокировать файл, вам нужно выполнить
как если бы оба флага были установлены и вы удалили только один из них, он все равно будет заблокирован.
источник