Banner of 8792f147a0929278f83d.png

My Archive extractor


Category: Linux

📅 December 15, 2022   |   👁️ Views: 237

My personal archive extractor. it's a bash script that simply creates a directory and extract the archive file in int and it supports most of the archive filetypes:

    

#!/bin/bash
file="$1"

SCRIPTNAME="${0##*/}"

err() {
    printf >&2 "$SCRIPTNAME: $*\n"
    exit 1
}

file="$(readlink -f "$file")"
mkdir "$file-extDir" 2>/dev/null
dir="$file-extDir"
case "$file" in
    *.tar.bz2)   tar -xjf        "$file"  -C "$dir"    ;;
    *.tar.gz)    tar -xzf        "$file"  -C "$dir"    ;;
    *.tar.lz)    tar --lzip -xvf "$file"  -C "$dir"    ;;
    *.bz2)       bunzip2         "$file"               ;;
    *.rar)       unrar x         "$file"               ;;
    *.gz)        gunzip          "$file"               ;;
    *.tar)       tar xf          "$file"  -C "$dir"    ;;
    *.tbz2)      tar xjf         "$file"  -C "$dir"    ;;
    *.tgz)       tar xzf         "$file"  -C "$dir"    ;;
    *.zip)       unzip           "$file"  -d "$dir"    ;;
    *.Z)         uncompress      "$file"               ;;
    *.7z)        7z x            "$file"  -o"$dir"    ;;
    *.iso)       7z x            "$file"  -o"$dir"    ;;
    *)           echo "'$file' cannot be extracted by $SCRIPTNAME" ;;
esac



you can make an alias for it in your .bashrc or .zshrc files like so

    

alias x='/home/mosaid/path/to/extract.sh'



it works great with ranger file manager. all you have to do is add the following line to ~/.config/ranger/rc.conf

    

map xx  shell ${HOME}/path/to/extract.sh %s




← 1K, 1.234M Human readable formatted numbers in PHP, Python, C and C++ Lemon juice with ginger →