Questão Comando para desbloquear arquivos "bloqueados" no OS X


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. Eu estou escrevendo um script bash para copiar alguns arquivos e estou recebendo um erro que diz "Operação não permitida" Então, primeiro eu preciso desbloquear os arquivos. Como vou coletar arquivos do sistema Windows com frequência, quero que meu script libere esses arquivos.

Qual é o comando do terminal para desbloquear arquivos "Bloqueados" no OSX?


80


origem




Respostas:


Para desbloquear arquivos, você pode usar:

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = alterar sinalizadores em arquivos / pastas, como "bloqueado"
  • -R = recursivo ou para tudo e siga os diretórios dentro do diretório especificado
  • nouchg = significa que o arquivo pode ser alterado
  • /PATH/ = claro, é o caminho para os arquivos que você deseja alterar. Algo como: ~/Sites/mysite/directory/with/locked/files/ trabalha como bem.

116



Parece que encontrei a solução quando você estava respondendo. Eu também aprendi que o -R é para recursivo. Então, para desbloquear todos os arquivos no diretório atual use <br/> chflags nochg * <br/> e para alterar apenas um arquivo <br/> chflags nouchg onefile.txt Veja: mehtanirav.com/2009/04/16/recursively-unlock-files-on-mac-os-x - Michael Prescott
Há outra bandeira relevante schg que é o sinalizador imutável do sistema developer.apple.com/library/mac/documentation/Darwin/Reference/…) O comando para limpar é semelhante: sudo chflags noschg PATH/TO/LOCKED/FILE - Andy Madge


Você também pode usar SetFile -a l, embora faça o mesmo que chflags nouchg:

SetFile -a l file.ext

-a l desmarca o bit para o atributo bloqueado. Você pode instalar o SetFile baixando o pacote de ferramentas de linha de comando das preferências do Xcode ou de developer.apple.com/downloads.


15



Este é o método que funcionou para mim no macOS Sierra com alguns arquivos copiados de uma máquina Windows. Eu usei: SetFile -a l ~ / Documents / Arduino / Samples / * - callisto


Isso é útil se você quiser pesquisar um diretório inteiro e desbloquear todos os arquivos.

No terminal cd para o diretório

Este comando encontra e irá imprimir uma lista deles.

$ find . -flags uchg

Este comando destrava-os.

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

Você pode usar o primeiro comando para checar se todos os arquivos estão desbloqueados depois de executar o segundo comando, voilà!


12



Embora isso funcione, pode ser extremamente lento para um grande número de arquivos porque inicia um novo processo para cada arquivo. - Richard Waite