12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env sh
- #
- # pbrisbin 2013 - compress/extract archives by extension.
- #
- ###
- if [ -z "$1" ]; then
- printf "usage: archive [ -x ] [ file, ... ]\n" >&2
- exit 1
- fi
-
- case "$1" in
- -x|--extract)
- shift
-
- for archive; do
- case "$archive" in
- *.tbz2|*.tar.bz2) tar xvjf "$archive" ;;
- *.tgz|*.tar.gz) tar xvzf "$archive" ;;
- *.tar) tar xvf "$archive" ;;
- *.gz) gunzip "$archive" ;;
- *.bz2) bunzip2 "$archive" ;;
- *.zip) unzip "$archive" ;;
- *.rar) unrar x "$archive" ;;
- *.Z) uncompress "$archive" ;;
- *.7z) 7z x "$archive" ;;
- *)
- printf "%s: unknown extension\n" "$archive" >&2
- exit 1
- ;;
- esac
- done
- ;;
-
- *)
- target="$1"; shift
-
- case "$target" in
- *.tbz2|*.tar.bz2) tar cvpjf "$target" "$@" ;;
- *.tgz|*.tar.gz) tar cvpzf "$target" "$@" ;;
- *.gz) cat "$@" | gzip > "$target" ;;
- *.bz2) cat "$@" | bzip2 > "$target" ;;
- *.zip) zip -r "$target" "$@" ;;
- *) $0 "$target.tar.gz" "$target" "$@" ;;
- esac
- ;;
- esac
|