¿Cómo puedo agrupar varias carpetas en zip sin archivos _macosx?

2

Estoy deseando comprimir varias carpetas al mismo tiempo, donde cada carpeta es su propio archivo zip. Me gustaría crear el archivo zip sin el _macosx o cualquier otro archivo oculto, y si es posible, cambiar la extensión del archivo zip a .cbz al mismo tiempo. De esa manera, solo puedo ejecutar un proceso en una carpeta completa y terminar todo rápidamente.

Estoy usando Ubooquity para alojar mis cómics y trata los archivos como corruptos si el archivo _macosx o cualquier otro archivo oculto está dentro del archivo zip.

    
pregunta Ryan Boles 28.09.2017 - 23:14

1 respuesta

1

Aquí hay un Servicio de automatización que se usa como una única Ejecutar script de shell acción para manejar el proceso.

  • En Automator , selecciona: Archivo > Nuevo > Servicio

  • Establecer: El servicio recibe las carpetas seleccionadas en Finder

  • Agregue un Ejecutar script de shell Action

    • Configuración: Shell: / bin / bash y Pasar entrada: como argumentos
    • Reemplaza todo el código predeterminado con el código que se muestra más abajo.
  • Guarde Automator Service dándole un nombre apropiado, por ejemplo: Crear archivo comprimido CBZ

Ahora, en Finder , seleccione la (s) carpeta (s) de destino que desea un archivo zip individual, con una extensión .cbz para cada carpeta seleccionada, y luego haga clic con el botón derecho y seleccione Crear archivo comprimido CBZ , en la sección servicios del menú contextual .

Código para Ejecutar el script de shell Acción :

for d in "$@"; do
    if ! cd "$(dirname "$d")"; then exit; fi
    if ! d="$(basename "$d")"; then exit; fi
    if [[ ! -e "${d}.cbz" ]]; then
        if ! zip -r "${d}.cbz" "$d" -x \*.DS_Store \*.localized; then exit; fi
    fi
done

Notas :

  • Como está codificado, solo crea el archivo archive.cbz zip archive si el archivo aún no existe.
  • Crea el archivo archive.cbz zip en la misma carpeta que contiene las carpetas seleccionadas.
  • Está escrito de manera que si se produce un error con cualquiera de los pasos seguidos, sale de la secuencia de comandos sin notificación. El manejo de errores se puede modificar según sea necesario / deseado.
  • De forma predeterminada, zip no incluirá la carpeta __MACOSX y si encuentra que hay otros archivos ocultos además de .DS_Store y .localized , aunque no debe ejecutar este último en este caso de uso, puede agregar exclusiones adicionales al comando zip .
  • Tal como está, la única indicación de que script ha finalizado es cuando desaparece el icono de Automator Service Gear en la barra de menús. Algunas otras formas de notificación de finalización se pueden agregar al script y / o al flujo de trabajo del Automator Service ampliado con acciones según corresponda, necesario / deseado.
  • Tal como está, no tiene lujos, sin embargo, hace lo que está programado para hacer.
respondido por el user3439894 29.09.2017 - 05:31

Lea otras preguntas en las etiquetas