#!/usr/bin/env bash ### ARCHIVE EXTRACTION # usage: ex function ex { if [ -z "$1" ]; then # display usage if no parameters given echo "Usage: ex ." echo " extract [path/file_name_2.ext] [path/file_name_3.ext]" else for n in "$@"; do if [ -f "$n" ]; then case "${n%,}" in *.cbt | *.tar.bz2 | *.tar.gz | *.tar.xz | *.tbz2 | *.tgz | *.txz | *.tar) tar xvf "$n" ;; *.lzma) unlzma ./"$n" ;; *.bz2) bunzip2 ./"$n" ;; *.cbr | *.rar) unrar x -ad ./"$n" ;; *.gz) gunzip ./"$n" ;; *.cbz | *.epub | *.zip) unzip ./"$n" ;; *.z) uncompress ./"$n" ;; *.7z | *.arj | *.cab | *.cb7 | *.chm | *.deb | *.dmg | *.iso | *.lzh | *.msi | *.pkg | *.rpm | *.udf | *.wim | *.xar) 7z x ./"$n" ;; *.xz) unxz ./"$n" ;; *.exe) cabextract ./"$n" ;; *.cpio) cpio -id <./"$n" ;; *.cba | *.ace) unace x ./"$n" ;; *) echo "ex: '$n' - unknown archive method" return 1 ;; esac else echo "'$n' - file does not exist" return 1 fi done fi } function ensure { if [ -z "$1" ]; then echo "Usage: ensure " else if ! command -v $1 &>/dev/null; then echo "$1 could not be found" fi fi } function htd { echo "$((0x$1))" } function b2d { echo "obase=10; ibase=2; $1" | bc } function h2d { echo "obase=10; ibase=16; $1" | bc } function b2h { echo "obase=16; ibase=2; $1" | bc } function h2b { echo "obase=2; ibase=16; $1" | bc } function d2h { echo "obase=16; ibase=10; $1" | bc } function d2b { echo "obase=2; ibase=10; $1" | bc }