Aquí hay un Servicio de automatización 1 que está disponible en Buscador cuando Carpetas se seleccionan y emula a el menús contextuales Comprimir [n] elementos comando excepto crea un archivo zip individual para cada uno de los Carpeta en el nombre de los seleccionados Carpeta . Si el Nombre de la carpeta.zip ya existe, entonces un " 2"
( espacio 2) se adjunta al nombre de archivo Por ejemplo Nombre de la carpeta 2.zip . Esto asegura un archivo zip no se toca y el archivo zip nombre de archivo se incrementará automáticamente cuando sea necesario.
<sup>1 </sup>En <strong>MacOS Mojave </strong>y más tarde, un <strong>Automatizador </strong><em>Servicio </em>se llama <em>Acción rápida </em>. También hay otras diferencias menores de nomenclatura, pero deberían ser más obvias al compararlas con los flujos de trabajo de Automator anteriores a MacOS Mojave.
Para crear el servicio: 1
-
Abrir Automatizador y seleccione Servicio 1 o Archivo > Nuevo > Servicio Si Automatizador ya está abierto.
-
Establecer Servicio que recibe seleccionado a carpetas y en a Buscador .
-
Añade un Ejecutar Shell script Acción , ajuste Shell: a /bin/bash y Pase de entrada: a como argumentos y añadir lo siguiente código :
for f in "$@"; do
dn="$(dirname "$f")"
bn="$(basename "$f")"
cd "$dn" || exit
if [[ ! -e "$bn.zip" ]]; then
ditto -c -k --sequesterRsrc --keepParent "$f" "$bn.zip"
else
n=2
for i in $bn *.zip; do
if [[ "$bn $n.zip" == "$i" ]]; then
n="$(( n + 1 ))"
fi
done
ditto -c -k --sequesterRsrc --keepParent "$f" "$bn $n.zip"
fi
done
afplay /System/Library/Sounds/Purr.aiff
-
Salvar el Servicio como: Comprimir carpetas por separado
Para utilizar el servicio:
En Buscador o en el Escritorio seleccionar varios Carpetas entonces Haga clic con el botón derecho del ratón en y seleccione Comprimir carpetas por separado desde abajo Servicios .
O después de seleccionar el objetivo Carpetas También puede hacer clic en Buscador > Servicios > Comprimir carpetas por separado de la barra de menús .
Ahí lo tienes, una forma de comprimir varias carpetas por separado y simultáneamente en archivos zip individuales emulando cómo Finder crea un archivo zip. Lo que significa que el archivo zip contiene las bifurcaciones de recursos conservadas y los metadatos HFS en el subdirectorio __MACOSX y sólo incorpora el nombre del directorio principal fuente en destino-archivo y no el nombre completo de la ruta como cuando se utiliza zip
(sin -j
) para crear el archivo.
Imagen de Comprimir carpetas por separado
1 votos
He actualizado mi respuesta para mejorar el código utilizado para incrementar el nombre del archivo zip de manera que emule la forma en que el comando Compress [n] Items del menú contextual del Finder incrementa un nombre de archivo.
0 votos
Lo siento, he actualizado el código una vez más para eliminar el innecesario
popd
y ha corregido una errata fatal enfor i in $bn*.zip; do
que debería haber sidofor i in $bn *.zip; do
. Observe el espacio entre$bn
y*.zip
faltaba y no debería haber faltado. Así que, por favor, actualícelo en su aplicación, de lo contrario, pisaFile Name 2.zip
cuando elbasename
tiene un espacio.