Copiei muitos arquivos somente leitura de um sistema Windows para o meu Mac. Ao visualizar as informações de cada arquivo usando "Obter informações", posso ver que elas estão bloqueadas. Estou escrevendo um script bash para copiar alguns arquivos e estou recebendo um erro que diz "Operação não permitida". Primeiro, preciso desbloquear os arquivos. Como eu extrairei arquivos do sistema Windows com frequência, desejo que meu script desbloqueie esses arquivos.
Qual é o comando do terminal para desbloquear arquivos "Bloqueados" no OSX?
macos
command-line
file-attributes
Michael Prescott
fonte
fonte
schg
que é a bandeira imutável sistema (consulte developer.apple.com/library/mac/documentation/Darwin/Reference/... ) O comando para limpá-la é semelhante:sudo chflags noschg PATH/TO/LOCKED/FILE
/bin/ls -lO /path/to/file
para visualizar o macOSflags
nos arquivos. Observe o caminho completo para ols
comando macOS ' '. Isso é necessário se você tiver o GNU Coreutils instalado.Você também pode usar
SetFile -a l
, mesmo que faça a mesma coisa quechflags nouchg
:-a l
desativa o bit para o atributo bloqueado. Você pode instalar o SetFile baixando o pacote Command Line Tools nas preferências do Xcode ou em developer.apple.com/downloads .fonte
Isso é útil se você deseja pesquisar em um diretório inteiro e desbloquear todos os arquivos.
No terminal
cd
para o diretórioEste comando encontra e imprime uma lista deles .
Este comando os desbloqueia .
Você pode usar o primeiro comando para verificar se todos os arquivos estão desbloqueados após a execução do segundo comando, voilà!
fonte
Na verdade, existem dois sinalizadores de bloqueio que podem ser definidos em um arquivo:
uchg
eschg
. Um arquivo que tem ouchg
sinalizador definido é imutável por usuários normais, mas é mutável pelo sistema. Um arquivo com oschg
sinalizador definido é imutável por qualquer pessoa. Ambos os sinalizadores podem ser definidos ao mesmo tempo.Para ver quais sinalizadores estão definidos em um arquivo, use
Essa é uma letra maiúscula o, não zero.
Para desbloquear definitivamente um arquivo, você teria que executar
como se os dois sinalizadores estivessem definidos e você removesse apenas um deles, ele ainda estará bloqueado.
fonte