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

Comando para desbloquear archivos "bloqueados" en OS X

He copiado un montón de archivos de sólo lectura de un sistema Windows a mi Mac. Al ver la información de cada archivo usando “Get Info”, puedo ver que están bloqueados. Estoy escribiendo un script de bash para copiar algunos archivos y estoy recibiendo un error que dice “Operación no permitida” Así que, primero necesito desbloquear los archivos. Como voy a sacar archivos del sistema Windows con frecuencia, quiero que mi script desbloquee estos archivos.

¿Cuál es el comando de terminal para desbloquear archivos “bloqueados” en OSX?

Respuestas (4)

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

Para desbloquear archivos puedes usar

chflags -R nouchg /PATH/TO/DIRECTORY/WITH/LOCKED/FILES/
  • chflags = cambiar las banderas de los archivos/carpetas como “bloqueado”
  • -R = recursivo o para todo y seguir los directorios dentro del directorio especificado
  • nouchg = significa que el archivo puede ser cambiado
  • /PATH/ = por supuesto es la ruta a los archivos que quieres cambiar. Algo como ~/Sites/mysite/directory/with/locked/files/ también funciona.
15
15
15
2013-09-20 03:23:10 +0000

Esto es útil si quiere buscar en un directorio entero y desbloquear todos los archivos.

En la terminal cd al directorio

Este comando encuentra e imprime una lista de ellos.

$ find . -flags uchg

Este comando los desbloquea.

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

Puede utilizar el primer comando para comprobar que todos los archivos están desbloqueados después de ejecutar el segundo comando, ¡voilà!

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

También puedes usar SetFile -a l, aunque hace lo mismo que chflags nouchg:

SetFile -a l file.ext

-a l desajusta el bit del atributo bloqueado. Puede instalar SetFile descargando el paquete Command Line Tools desde las preferencias de Xcode o desde developer.apple.com/downloads .

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

En realidad hay dos banderas de bloqueo que se pueden establecer en un archivo: uchg y schg. Un archivo que tiene la bandera uchg establecida es inmutable por los usuarios normales pero es mutable por el sistema. Un archivo con el indicador schg es inmutable para cualquier persona. Ambas banderas pueden estar activadas al mismo tiempo.

Para ver qué banderas están activadas en un archivo, utilice

ls -lO FILE

Eso es una o mayúscula, no un cero.

Para desbloquear definitivamente un archivo, tendría que ejecutar

chflags nouchg,noschg FILE

ya que si ambas banderas estuvieran activadas y eliminara sólo una de ellas, seguiría estando bloqueado.