it-swarm-ru.tech

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

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

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

90
Michael Prescott

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

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

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

SetFile -a l file.ext

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

15
John T

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

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

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

$ find . -flags uchg

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

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

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

14
Mamie McCall