ZSH Archive Function
This simple shell function creates various archives dependent on the file extension.
Supported extensions: tar.bz2, tar.gz, tar.xz, tar.lzma, bz2,
gz, tar, tbz2, tgz, zip, 7z
useage: pack archive.extension [file|dir]+
function pack() { # www.christoph-polcin.com if [[ $# -lt 2 ]]; then echo "usage: pack archive.extension [dir|file]+" return 1 fi [[ -f $1 ]] && echo "error: destination $1 already exists." && return 1 local lower lower=${(L)1} case $lower in *.tar.bz2) tar cvjf $@;; *.tar.gz) tar cvzf $@;; *.tar.xz) tar cvJf $@;; *.tar.lzma) tar --lzma -cvf $@;; *.bz2) 7za a -tbzip2 $@;; *.gz) 7za a -tgzip $@;; *.tar) tar cvf $@;; *.tbz2) tar cvjf $@;; *.tgz) tar cvzf $@;; *.zip) zip -r $@;; *.7z) 7za a -t7z -mmt $@;; *) echo "'$1' unsupported archive format / extension.";; esac }