2009-09-14 02:15:23 +0000 2009-09-14 02:15:23 +0000
102
102

Команда для разблокировки "Заблокированных" файлов на OS X

Я скопировал много файлов только для чтения с системы Windows на мой Mac. При просмотре информации для каждого файла с помощью “Получить информацию” я вижу, что они заблокированы. Я пишу бэш-скрипт для копирования поверх некоторых файлов и получаю ошибку с надписью “Operation not allowed” (Операция запрещена) Так что сначала мне нужно разблокировать файлы. Так как я буду часто вытягивать файлы из системы Windows, я хочу, чтобы мой скрипт разблокировал эти файлы.

Что такое терминальная команда для разблокировки “Заблокированных” файлов на OSX?

Ответы (4)

144
144
144
2009-09-14 02:26:55 +0000

Для разблокировки файлов можно использовать:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = поменять флаги на файлах/папках типа “заблокирован”
  • -R = рекурсивный или для всего и следовать за каталогами внутри указанной директории
  • nouchg = означает, что файл может быть изменен
  • /PATH/ = конечно же, это путь к файлам, которые вы хотите изменить. Что-то вроде: ~/Sites/mysite/directory/with/locked/files/ тоже работает.
15
15
15
2013-09-20 03:23:10 +0000

Это полезно, если вы хотите найти весь каталог и разблокировать все файлы.

В терминале cd в каталог

Эта команда находит и распечатывает список их_.

$ find . -flags uchg

Эта команда unlock them.

$ find . -flags uchg -exec chflags nouchg {} \;

С помощью первой команды вы можете дважды проверить, что все файлы разблокированы после выполнения второй команды, вуаля!

15
15
15
2009-09-14 02:30:00 +0000

Вы также можете использовать SetFile -a l, хотя он делает то же самое, что и chflags nouchg:

SetFile -a l file.ext

-a l снимает бит для заблокированного атрибута. Вы можете установить SetFile, загрузив пакет Command Line Tools из настроек Xcode или из developer.apple.com/downloads .

2
2
2
2019-05-15 08:32:33 +0000

На самом деле есть два флага блокировки, которые могут быть установлены в файле: uchg и schg. Файл, в котором установлен флаг uchg, не изменяется обычными пользователями, но изменяется системой. Файл, в котором установлен флаг schg, не изменяется никем. Оба флага могут быть установлены одновременно.

Чтобы посмотреть, какие флаги установлены в файле, используйте

ls -lO FILE

Это заглавная буква o, а не ноль.

Чтобы определенно разблокировать файл, вы должны выполнить

chflags nouchg,noschg FILE

так, как если бы оба флага были установлены и вы удалили только один из них, он все равно будет заблокирован.

Похожие вопросы

12
7
5
15
8