85

Я скопировал много файлов только для чтения из системы Windows на мой Mac. При просмотре информации для каждого файла с помощью "Получить информацию", я вижу, что они заблокированы. Я пишу сценарий bash для копирования некоторых файлов и получаю сообщение об ошибке "Операция не разрешена". Итак, сначала мне нужно разблокировать файлы. Поскольку я буду часто извлекать файлы из системы Windows, я хочу, чтобы мой скрипт разблокировал эти файлы.

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

3 ответа3

125

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

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

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

SetFile -a l file.ext

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

14

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

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

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

$ find . -flags uchg

Эта команда разблокирует их.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .