# function to extract archives # EXAMPLE: unpack file unpack() { if [[ -f $1 ]]; then case $1 in *.tar.bz2) tar xjfv $1 ;; *.tar.gz) tar xzfv $1 ;; *.tar.xz) tar xvJf $1 ;; *.bz2) bunzip2 $1 ;; *.gz) gunzip $1 ;; *.rar) unrar x $1 ;; *.tar) tar xf $1 ;; *.tbz) tar xjvf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "I don't know how to extract '$1'" ;; esac else case $1 in *help) echo "Usage: unpack ARCHIVE_NAME" ;; *) echo "'$1' is not a valid file" ;; esac fi } # function to create archives # EXAMPLE: pack tar file pack() { if [ $1 ]; then case $1 in tar.bz2) tar -cjvf $2.tar.bz2 $2 ;; tar.gz) tar -czvf $2.tar.bz2 $2 ;; tar.xz) tar -cf - $2 | xz -9 -c - > $2.tar.xz ;; bz2) bzip $2 ;; gz) gzip -c -9 -n $2 > $2.gz ;; tar) tar cpvf $2.tar $2 ;; tbz) tar cjvf $2.tar.bz2 $2 ;; tgz) tar czvf $2.tar.gz $2 ;; zip) zip -r $2.zip $2 ;; 7z) 7z a $2.7z $2 ;; *help) echo "Usage: pack TYPE FILES" ;; *) echo "'$1' cannot be packed via pack()" ;; esac else echo "'$1' is not a valid file" fi }