Puedo cambiar el estado de bloqueo del archivo ("solo lectura") en el menú contextual de un archivo:
No hay ningún elemento de menú para esto.
¿Cómo puedo crear un elemento de menú del Finder (contextual) para configurar, eliminar o alternar esta bandera más rápidamente?
Respuesta1
Puede crear un nuevo elemento de menú que lo haga creando unServicioque recibearchivos y carpetascomo entrada encualquier aplicaciónen Automator.
Tienes dos opciones de implementación. Elija una de las dos acciones de Automator para crear el flujo de trabajo del Servicio:
- Ejecutar script de shell
- Ejecute AppleScript
El siguiente código implementa elPalancacomando, ya que es el más complejo.
Ejecutar script de shell
Esta variante se utiliza stat
para leer los indicadores establecidos para el archivo. Estos son los mismos valores que normalmente se muestran al ejecutar ls -lO
, pero stat
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 comprobando.
chflags
se utiliza para cambiar el valor, y growlnotify
, parte opcional deGruñido, utilizado para mostrar mensajes de éxito o error.
Utilice el siguiente fragmento de código del script bash como parte de la acción Ejecutar script de Shell:
for f in "$@"
do
let "$( stat -f "%f" "$f" ) & 0x2"
if [ $? -ne 0 ] ; then
chflags uchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to lock $f!"
/usr/local/bin/growlnotify "Locked File" -m "$f was locked!"
else
chflags nouchg "$f" || /usr/local/bin/growlnotify "Error" -m "Failed to unlock $f!"
/usr/local/bin/growlnotify "Unlocked File" -m "$f was unlocked!"
fi
done
Configurar la acción para recibir informacióncomo argumentos.
Ejecute AppleScript
Utilice el siguiente fragmento de código AppleScript como parte de la acción Ejecutar AppleScript:
on run {input, parameters}
repeat with f in input
try
tell application "Finder" to set locked of f to (not locked of f)
on error errmsg
tell application "Finder" to display alert errmsg
end try
end repeat
end run
Si la acción falla, por ejemplo porque faltan permisos, se muestra un cuadro de diálogo por cada archivo que no se pudo cambiar.