Author......Ikaros Kappler Date............2016-10-28 Version................1.0
Creating Zip files omitting .DS_Store files
Darn m*therflippin' hidden .DS_Store records. Y u spoil me zip files?!
Each time I am using MacOS X there is this one issue: Zipped files always contain those unwanted, annoying .DS_Store files. You don't even recognize them if you are using MacOS X on the target system too, but dare you using Windows or any Linux/UNIX system ... suddenly they are everywhere.
Do your customers/friends/family a favor: pack clean Zip files that do not contain hidden system relicts.
You can use this script in MaxOS' Automator.
Each time I am using MacOS X there is this one issue: Zipped files always contain those unwanted, annoying .DS_Store files. You don't even recognize them if you are using MacOS X on the target system too, but dare you using Windows or any Linux/UNIX system ... suddenly they are everywhere.
Do your customers/friends/family a favor: pack clean Zip files that do not contain hidden system relicts.
You can use this script in MaxOS' Automator.
Here comes the Script
It is a simple Bash script (sorry for bad style):
Download bash script here.
Have fun!
#!/bin/bash # # To create the desired zip file inside the current Finder window's # working directoy, this script just places it inside the first # passed file's parent directory. # # 'pwd' is not doing the job here. # Check if input args are present if [ $# -lt 1 ]; then echo "Pass some files" 1>&2 exit 1; fi get_abs_filename() { # $1 : relative filename echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")" } get_base_directory() { # $1 : relative filename echo "$(cd "$(dirname "$1")" && pwd)" } baseDir=$(get_base_directory $1) echo "baseDir=$baseDir" cd "$baseDir" pwd # Convert absolute paths to plain file names filenamelist=() for f in "$@" do echo "Current file=$f, basename=$(basename "$f")" filenamelist+=( "$(basename "$f")" ) done # echo "filenamelist: $filenamelist" # Convert the filenamelist into a string (whitespace separated) filelist=$(echo ${filenamelist[*]}) echo "filelist=$filelist" zipName="$(basename "$baseDir").zip" # Eventually create the zip file zip -r "$zipName" $filelist -x "*.DS_Store"
Download bash script here.
Have fun!
Enjoy and don't forget to help your friends!