Elemento del menú contextual para bloquear / desbloquear archivos en el Finder más rápidamente

imagenes

Puedo cambiar el estado del bloqueo de archivos (“solo lectura”) en el menú contextual de un archivo:

introduzca la descripción de la imagen aquí

No hay ningún elemento de menú para esto.

¿Cómo puedo crear un elemento del menú Finder (contexto) para configurar, eliminar o alternar esta bandera más rápidamente?


Tenemos varias respuestas

La mejor respuesta:

Puede crear un nuevo elemento de menú que haga eso creando un Servicio que recibe archivos y carpetas como entrada en cualquier aplicación en Automator.

Tienes dos opciones de implementación. Elija una de las dos acciones de Automator para construir el flujo de trabajo del Servicio con:

  • Ejecutar shell script
  • Ejecutar AppleScript

El siguiente código implementa el Palanca El comando, ya que es el más complejo.

Ejecutar shell script

Esta variante utiliza estado Para leer las banderas establecidas para el archivo. Estos son los mismos valores que normalmente se muestran al ejecutar ls -lO, pero estado Es una solución más limpia para leer los valores. La bandera bloqueada, o uchg, tiene el valor 0x2, así que eso es lo que estamos buscando.

chflags se utiliza para cambiar el valor, y notificar, parte opcional de Gruñido, Se utiliza para mostrar mensajes de éxito o error.

introduzca la descripción de la imagen aquí

Use el siguiente fragmento de código del script bash como parte de la acción Ejecutar script de shell:

para f en "$ @"
hacer
    deja "$ (stat -f"% f "" $ f ") & 0x2 "
    si [$? -ne 0]; entonces
        chflags uchg "$ f" || / usr / local / bin / growlnotify "Error" -m "Error al bloquear $ f!"
        / usr / local / bin / growlnotify "Archivo bloqueado" -m "$ f fue bloqueado!"
    más
        chflags nouchg "$ f" || / usr / local / bin / growlnotify "Error" -m "Error al desbloquear $ f!"
        / usr / local / bin / growlnotify "Unlocked File" -m "$ f fue desbloqueado!"
    fi
hecho

Configurar la acción para recibir entrada. como argumentos.

 Ejecutar AppleScript

Utilice el siguiente fragmento de código de AppleScript como parte de la acción Ejecutar AppleScript:

en ejecución {entrada, parámetros}
repetir con f en la entrada
        tratar
            Dile a la aplicación "Finder" que establezca bloqueado de f en (no bloqueado de f)
        en error errmsg
            Dile a la aplicación "Finder" que muestre la alerta errmsg
        prueba final
    fin de repetición
fin de carrera

Si la acción falla, por ejemplo debido a que faltan permisos, se muestra un cuadro de diálogo por archivo que no se pudo cambiar.

introduzca la descripción de la imagen aquí


Otra respuesta


Fuente

Leave a Reply