Potresti usare un'azione Crea archivio e rinominare l'archivio risultante:
d=${1%/*}start="$d/${d##*/}"
name="$start.zip"
i=2
while [[ -e $name ]]; do
name="$start $i.zip"
let i++
done
mv "$1" "$name"
open -R "$name"
Oppure usa un'azione di script della shell shell avviata in questo modo:
for n in $(seq $(printf %s "$@" | tr -dc / | wc -c)); do
uniq=$(printf %s\n "$@" | cut -d / -f1-$n | uniq)
[[ $uniq != *$'\n'* ]] && dir=$uniq || break
done
cd "${dir:-/}"
[[ $dir ]] && start=${dir##*/} || start=archive
name="$start.zip"
i=2
while [[ -e $name ]]; do
name="$start $i.zip"
let i++
done
zip -r "$name" -- "${@#$dir/}"
open -R "$name"
Se alcuni file hanno attributi o ACL estesi, zip li rimuove. Archive Utility e l'azione Create Archive li memorizzano nel formato AppleDouble.