summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuprDewd <suprdewd@gmail.com>2010-12-24 22:20:57 +0000
committerSuprDewd <suprdewd@gmail.com>2010-12-24 22:20:57 +0000
commitff0b25b745494d96ae06694321b2299991620b14 (patch)
treed5b3043eb1ca16bb97c93c5a17a49a8c113d73f6
parent4fadc302472f9b02e386da3e7182c1397ee3cd5c (diff)
downloadzsh-ff0b25b745494d96ae06694321b2299991620b14.tar.gz
zsh-ff0b25b745494d96ae06694321b2299991620b14.tar.bz2
zsh-ff0b25b745494d96ae06694321b2299991620b14.zip
Added a function to extract various archives.
Also an alias for the function.
-rw-r--r--lib/aliases.zsh2
-rw-r--r--lib/functions.zsh21
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/aliases.zsh b/lib/aliases.zsh
index d2d3aed81..b47de5bde 100644
--- a/lib/aliases.zsh
+++ b/lib/aliases.zsh
@@ -21,3 +21,5 @@ alias ll='ls -l'
alias sl=ls # often screw this up
alias afind='ack-grep -il'
+
+alias x=extract
diff --git a/lib/functions.zsh b/lib/functions.zsh
index e3c0de43e..99b75409c 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -37,3 +37,24 @@ function take() {
mkdir -p $1
cd $1
}
+
+function extract() {
+ if [[ -f $1 ]]; then
+ case $1 in
+ *.tar.bz2) tar xvjf $1;;
+ *.tar.gz) tar xvzf $1;;
+ *.bz2) bunzip $1;;
+ *.rar) unrar $1;;
+ *.gz) gunzip $1;;
+ *.tar) tar xvf $1;;
+ *.tbz2) tar xvjf $1;;
+ *.tgz) tar xvzf $1;;
+ *.zip) unzip $1;;
+ *.Z) uncompress $1;;
+ *.7z) 7z x $1;;
+ *) echo "'$1' cannot be extracted via >extract<";;
+ esac
+ else
+ echo "'$1' is not a valid file"
+ fi
+}