Copié muchos archivos de solo lectura de un sistema Windows a mi Mac. Al ver la información de cada archivo usando "Obtener información", puedo ver que están bloqueados. Estoy escribiendo un script bash para copiar sobre algunos archivos y recibo un error que dice "Operación no permitida" Entonces, primero necesito desbloquear los archivos. Dado que a menudo extraeré archivos del sistema de Windows, quiero que mi script desbloquee estos archivos.
¿Cuál es el comando de terminal para desbloquear archivos "bloqueados" en OSX?
macos
command-line
file-attributes
Michael Prescott
fuente
fuente
schg
que es la bandera inmutable del sistema (vea developer.apple.com/library/mac/documentation/Darwin/Reference/… ) El comando para borrarlo es similar:sudo chflags noschg PATH/TO/LOCKED/FILE
/bin/ls -lO /path/to/file
para ver macOSflags
en los archivos. Observe la ruta completa alls
comando macOS ' '. Esto es necesario si tiene GNU Coreutils instalado.También puede usar
SetFile -a l
, aunque hace lo mismo quechflags nouchg
:-a l
deshabilita el bit para el atributo bloqueado. Puede instalar SetFile descargando el paquete de herramientas de línea de comandos desde las preferencias de Xcode o desde developer.apple.com/downloads .fuente
Esto es útil si desea buscar en un directorio completo y desbloquear todos los archivos.
En la terminal
cd
al directorioEste comando encuentra e imprimirá una lista de ellos .
Este comando los desbloquea .
Puede usar el primer comando para verificar que todos los archivos estén desbloqueados después de ejecutar el segundo comando, ¡voilà!
fuente
En realidad, hay dos marcas de bloqueo que se pueden establecer en un archivo:
uchg
yschg
. Un archivo que tiene eluchg
indicador establecido es inmutable por los usuarios normales, pero el sistema lo puede mutar. Un archivo que tiene elschg
indicador establecido es inmutable por cualquiera. Ambas banderas se pueden configurar al mismo tiempo.Para ver qué banderas están establecidas en un archivo, use
Esa es una letra mayúscula o, no cero.
Para desbloquear definitivamente un archivo, deberías ejecutar
como si ambas banderas estuvieran configuradas y eliminas solo una de ellas, seguirá bloqueada.
fuente