1 votos

Cómo hacer macOS archivo RAR y descomprimir archivos en el Finder con automator y shell script?

He rar y unrar instalado en /usr/local/bin/. Necesito:

  1. En el Finder: para archivar los archivos seleccionados y carpetas .rar la extensión de la misma carpeta. Es posible hacerlo a través de clic derecho y del menú de contexto? O con automator servicios?
  2. En el Finder: Descomprimir seleccionados los archivos a la misma carpeta en el Finder con el menú de contexto.

Es posible que con automator y shell script?

1voto

user3439894 Puntos 5883

El ejemplo de secuencia de comandos de shell código utilizado en esta respuesta fue probado bajo macOS Catalina 10.15.4.

Como codificado por la ubicación de la RAR archivo es ser creado/extraído debe ser legible/escritura a usted con el normal de los privilegios, de lo contrario el RAR archivo es creado/extraído en su Escritorio. Si selecciona archivo/carpeta para ser archivados no es legible lanzará un mensaje de error y una incompleta RAR archivo puede ser creado.

Los dos Automator Acciones Rápidas funcionan como se anuncia con la configuración como se muestra en las imágenes de los flujos de trabajo, más abajo, a fin de utilizar la misma configuración!

  • Flujo de trabajo recibe actual [archivos o carpetas] en [Buscador]
  • Ejecutar el Shell Script de acción:
    • Shell: [/bin/bash] Pase de entrada: [argumentos]


  • NOTA: En el orden de estos flujos de trabajo a trabajo, Buscador debe dar Pleno Acceso a Disco en: Preferencias del Sistema > Seguridad y Privacidad > Privacidad

  • NOTA: Si rar y unrar no están debidamente firmado lanzará un mensaje de error. Ir a Preferencias del Sistema > Seguridad y Privacidad > General, haga clic en el candado para realizar cambios, escriba sus credenciales, haga clic en el Permitir el botón. Usted todavía tendrá que conceder el permiso la próxima vez que se ejecuta, pero no hay después.



Crear Archivo RAR

Utilizando cómo por defecto en el Buscador de un ZIP archivo es creado en macOS, sólo recursing la ruta relativa desde dentro de la PWD, lo mismo se aplica al ejemplo de secuencia de comandos de shell código utilizado en la primera Ejecutar el Shell de Comandos de acción de Automator de Acción Rápida que se muestra a continuación.

En esta primera Automator de Acción Rápida, como codificado, el ejemplo de secuencia de comandos de shell código será:

  • Definir RAR variables.
  • Cambie el directorio a la ubicación del archivo seleccionado(s)/carpeta(s) dentro de la misma carpeta principal del archivo seleccionado(s)/carpeta(s).
  • Construir una matriz de sólo el basenames del archivo seleccionado(s)/carpeta(s).
  • Compruebe la PWD es de escritura y si es cierto, crear el RAR archivo en el PWD, los demás crean en su Escritorio.
  • Crear un RAR archivo, llamado por ejemplo:
    • Archivo 2020-04-25 en 10.56.00 PM.rar
      Contiene el archivo seleccionado(s)/carpeta(s).

rar_exe="/usr/local/bin/rar"
rar_args="a -r -idq"
rar_archive="Archive $(date '+%Y-%m-%d at %I.%M.%S %p').rar"

cd "$(dirname "$1")" || exit

declare -a my_files
for f in "$@"; do
    my_files+=( "$(basename "$f")" )
done

if [ -w "${PWD}" ]; then
    $("${rar_exe}" ${rar_args} "${rar_archive}" "${my_files[@]}")
else
    $("${rar_exe}" ${rar_args} "${HOME}/Desktop/${rar_archive}" "${my_files[@]}")
fi

Automator Create RAR Archive Quick Action Image



Extraer el Archivo RAR

A diferencia de la forma por defecto en el Buscador de un ZIP archivo se extrae en macOS, incrementando el nombre de la carpeta el archivo se extrae a si previamente existe, el ejemplo de secuencia de comandos de shell código utilizado en esta segunda Ejecutar el Shell de Comandos de acción de Automator de Acción Rápida que se muestra a continuación no hacer eso! Si la carpeta nombrada por el extraídos RAR archivo ya existe, entonces no es extraído por segunda vez.

En lo que necesita para extraer de nuevo, cambiar el nombre o eliminar los existentes extraído RAR archivo, o copiar el RAR archivo a otra ubicación, a continuación, extraer de ella.

En esta segunda Automator de Acción Rápida, como codificado, el ejemplo de secuencia de comandos de shell código será:

  • Definir UNRAR variables.
  • Cambie el directorio a la ubicación de los seleccionados RAR archivo(s).
  • Verificar la extensión de archivo del archivo seleccionado(s) es rar.
  • Compruebe la PWD es de escritura si es true, extraer el RAR archivo en el PWD, otro extracto en su Escritorio.
  • Verificar una carpeta del mismo nombre ya no existe, y si no, a continuación, extraer el contenido de los seleccionados RAR archivo(s) en una carpeta el nombre de los seleccionados RAR archivo(s).

unrar_exe="/usr/local/bin/unrar"
unrar_args="x -ad -idq"

cd "$(dirname "$1")" || exit

for f in "$@"; do
    [ "${f##*.}" == "rar" ] || continue
    d="${f##*/}"
    if [ -w "${PWD}" ]; then
        [ ! -d "${d%.*}" ] || continue
        $("${unrar_exe}" ${unrar_args} "$f")
    else
        cd "${HOME}/Desktop" || exit
        [ ! -d "${d%.*}" ] || continue
        $("${unrar_exe}" ${unrar_args} "$f")
    fi
done

Automator Extract RAR Archive Quick Action Image


Nota: El ejemplo de secuencia de comandos de shell código es sólo eso y, sans existentes de manejo de errores, no contiene ningún tipo adicional de control de error como puede ser apropiado. La responsabilidad recae sobre el usuario para agregar cualquier error de manipulación como puede ser apropiado, necesitaba o quería.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X