El ejemplo shell script código utilizado en esta respuesta fue probado bajo MacOS Catalina 10.15.4 .
Como codificado el ubicación el RAR archivo es ser creado/extraído a debe ser legible/escribible con privilegios normales, de lo contrario el RAR archivo es creado/extraído en su Escritorio . Si se selecciona un archivo/carpeta para ser archivado no es legible arrojará un mensaje de error y un mensaje incompleto RAR archivo puede crearse.
Los dos Automatizador Acciones rápidas funcionan como se anuncian con el ajustes como se muestra en las imágenes del flujos de trabajo más abajo, así que utilice el mismo ajustes ¡!
-
El flujo de trabajo recibe los [archivos o carpetas] actuales en el [Finder]
-
Ejecutar Shell script acción :
- Shell: [/bin/bash] Pasa la entrada: [como argumentos]
-
NOTA: Para que estos flujos de trabajo a trabajar, Buscador se debe dar Acceso total al disco en: Preferencias del sistema > Seguridad y privacidad > Privacidad
-
NOTA: Si rar
y unrar
no están correctamente firmados, arrojará un mensaje de error. Ir a Preferencias del sistema > Seguridad y privacidad > General , haga clic en el candado para realizar cambios, introduzca sus credenciales, haga clic en el Permitir botón . Todavía tendrá que conceder el permiso la próxima vez que se ejecute, pero no después.
Crear un archivo RAR
Utilizando cómo por defecto en Buscador a ZIP archivo se crea en MacOS , sólo recurriendo a la ruta relativa desde el interior del PWD lo mismo se aplica al ejemplo shell script código utilizado en la primera Ejecutar Shell script acción de la Automatizador Acción rápida que se muestra a continuación.
En este primer Automatizador Acción rápida , como codificado El ejemplo shell script código lo hará:
- Definir RAR variables .
- Cambiar de directorio a la ubicación de la archivo(s)/carpeta(s) seleccionados dentro del la misma carpeta principal de la archivo(s)/carpeta(s) seleccionados .
- Construir un matriz de sólo el basenames de la archivo(s)/carpeta(s) seleccionados .
- Verifique el PWD es escribible y si verdadero , crear el RAR archivo en el PWD , si no crear en su Escritorio .
- Crear un RAR archivo , llamado, por ejemplo:
- Archivo 2020-04-25 a las 10.56.00 PM.rar
Contiene el archivo(s)/carpeta(s) seleccionados .
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
Extraer un archivo RAR
A diferencia de cómo por defecto en Buscador a ZIP archivo es extraído en MacOS incrementando el nombre de la carpeta el archivo es extraído a si existe previamente, el ejemplo shell script código utilizado en este segundo Ejecutar Shell script acción de la Automatizador Acción rápida que se muestra a continuación no lo hace. Si el carpeta llamado así por el extraído RAR archivo ya existe, entonces no es extraído una segunda vez.
En usted necesita extracto de nuevo, renombrar o borrar el extraído RAR archivo o copiar el RAR archivo a una alternativa ubicación entonces extracto lo.
En este segundo Automatizador Acción rápida , como codificado El ejemplo shell script código lo hará:
- Definir UNRAR variables .
- Cambiar de directorio a la ubicación de la seleccionado RAR archivo(s) .
- Verifique el extensión del archivo de la archivo(s) seleccionado(s) es rar .
- Verifique el PWD es escribible y si es verdadero, extracto el RAR archivo en el PWD , si no extracto en su Escritorio .
- Verificar un carpeta del mismo nombre no existe ya, y si no, entonces extracto el contenido del seleccionado RAR archivo(s) en un carpeta el nombre de la seleccionado 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
Nota: El <em>ejemplo </em><strong>shell script </strong><em>código </em>es sólo eso y, sin la existencia de <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado.
0 votos
RE: "¿Es posible con automator y shell script?", sí es factible.
0 votos
@user3439894, ¿cómo puedo hacer esto?
0 votos
@user3439894, tengo MacOS Catalina. Estoy tratando de hacer 2 escenarios: 1. Para archivar: Hay varios archivos y carpetas todos en una carpeta. Cuando uno selecciona varios archivos y carpetas, luego hace clic con el botón derecho (o va al Finder>servicios) y elige "Archivar", archiva todos los archivos y carpetas seleccionados en la misma carpeta y crea el archivo archive.rar (o archive "fecha""hora".rar)
0 votos
@user3439894, 2. Para desarchivar: Hay archivos en una carpeta. Cuando uno lo selecciona con el clic derecho (o con Finder>servicios), y elige "Desarchivar", se crea una carpeta llamada exactamente como archivo, en una carpeta donde está el archivo, y lo desarchiva en esta carpeta creada.