123456789101112131415161718192021222324252627282930313233 |
- #!/usr/bin/env bash
- # Unzip most filetypes automatically
- extract() {
- [[ $# -eq 0 ]] && { echo "usage: extract <archive...>" >&2; return 1; }
- for a in "$@"; do
- [[ ! -f $a ]] && { echo "$a: not a file" >&2; continue; }
- case $a in
- *.tar.bz2|*.tbz2) tar xvjf "$a" ;;
- *.tar.gz|*.tgz) tar xvzf "$a" ;;
- *.tar.xz) tar --xz -xvf "$a" ;;
- *.tar.zst) tar --use-compress-program=unzstd -xvf "$a" ;;
- *.tar.lz) tar --lzip -xvf "$a" ;;
- *.tar) tar xvf "$a" ;;
- *.bz2) bunzip2 "$a" ;;
- *.gz) gunzip "$a" ;;
- *.xz) unxz "$a" ;;
- *.zst) unzstd "$a" ;;
- *.lz) unlz "$a" ;;
- *.zip) unzip "$a" ;;
- *.rar) unrar x "$a" ;;
- *.7z) 7z x "$a" ;;
- *.Z) uncompress "$a" ;;
- *) echo "$a: cannot extract" ;;
- esac
- done
- }
- # Allow script to be safely sourced
- if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
- extract "$@"
- exit $?
- fi
|