summaryrefslogtreecommitdiff
path: root/plugins/extract
diff options
context:
space:
mode:
authorzghember <zghpku@gmail.com>2014-12-15 00:23:34 +0800
committerzghember <zghpku@gmail.com>2014-12-15 00:23:34 +0800
commit6fd0b73e9aba568640005798f737cd73ad0bfdf4 (patch)
tree22f3654e0c00ffd1cb9c3c05ca5d8bffa190cc1f /plugins/extract
parent6f70d288cc4625142413227109bf1eeac7e2a180 (diff)
parent141c2e593401f245a9f9bb0799ada8bf14b677d7 (diff)
downloadzsh-6fd0b73e9aba568640005798f737cd73ad0bfdf4.tar.gz
zsh-6fd0b73e9aba568640005798f737cd73ad0bfdf4.tar.bz2
zsh-6fd0b73e9aba568640005798f737cd73ad0bfdf4.zip
Merge commit '141c2e593401f245a9f9bb0799ada8bf14b677d7'
Diffstat (limited to 'plugins/extract')
-rw-r--r--plugins/extract/extract.plugin.zsh4
1 files changed, 2 insertions, 2 deletions
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index a6e16ddf7..898d3d36e 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -38,7 +38,7 @@ function extract() {
file_name="$( basename "$1" )"
extract_dir="$( echo "$file_name" | sed "s/\.${1##*.}//g" )"
case "$1" in
- (*.tar.gz|*.tgz) tar xvzf "$1" ;;
+ (*.tar.gz|*.tgz) [ -z $commands[pigz] ] && tar zxvf "$1" || pigz -dc "$1" | tar xv ;;
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
&& tar --xz -xvf "$1" \
@@ -47,7 +47,7 @@ function extract() {
&& tar --lzma -xvf "$1" \
|| lzcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
- (*.gz) gunzip "$1" ;;
+ (*.gz) [ -z $commands[pigz] ] && gunzip "$1" || pigz -d "$1" ;;
(*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;;
(*.lzma) unlzma "$1" ;;