diff --git a/.zshrc b/.zshrc index bafa87b..aa0b006 100644 --- a/.zshrc +++ b/.zshrc @@ -75,3 +75,27 @@ alias gls="git ls-files" # List files tracked by git alias gcl="git clone" # Shortcut for git clone alias gtag="git tag" # Shortcut for git tag +# Function for extracting different types of archives +ex () { + if [ -f "$1" ]; then + case "$1" in + *.tar.bz2) tar xjf "$1" ;; + *.tar.gz) tar xzf "$1" ;; + *.bz2) bunzip2 "$1" ;; + *.rar) unrar x "$1" ;; + *.gz) gunzip "$1" ;; + *.tar) tar xf "$1" ;; + *.tbz2) tar xjf "$1" ;; + *.tgz) tar xzf "$1" ;; + *.zip) unzip "$1" ;; + *.Z) uncompress "$1" ;; + *.7z) 7z x "$1" ;; + *.deb) ar x "$1" ;; + *.tar.xz) tar xf "$1" ;; + *.tar.zst) tar xf "$1" ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +}