summaryrefslogtreecommitdiff
path: root/plugins/extract
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2023-01-17 12:46:15 +0100
committerTuowen Zhao <ztuowen@gmail.com>2023-01-17 12:46:15 +0100
commitdb7efd2336e4dbe6abf321b00dbc11bc5afb1355 (patch)
tree720a58ff82bf0a0e0167594131f872d453b1828e /plugins/extract
parent04b8c052e5b624873b352889423c753ed1baf9c4 (diff)
parent8f0e296dbf27026ea0515ebae0d3cc41f236ecdc (diff)
downloadzsh-db7efd2336e4dbe6abf321b00dbc11bc5afb1355.tar.gz
zsh-db7efd2336e4dbe6abf321b00dbc11bc5afb1355.tar.bz2
zsh-db7efd2336e4dbe6abf321b00dbc11bc5afb1355.zip
Merge remote-tracking branch 'github/master'
Diffstat (limited to 'plugins/extract')
-rw-r--r--plugins/extract/extract.plugin.zsh9
1 files changed, 6 insertions, 3 deletions
diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh
index 1112dd52f..563d88c72 100644
--- a/plugins/extract/extract.plugin.zsh
+++ b/plugins/extract/extract.plugin.zsh
@@ -30,12 +30,15 @@ EOF
local extract_dir="${1:t:r}"
local file="$1" full_path="${1:A}"
case "${file:l}" in
- (*.tar.gz|*.tgz) (( $+commands[pigz] )) && { pigz -dc "$file" | tar xv } || tar zxvf "$file" ;;
- (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$file" ;;
+ (*.tar.gz|*.tgz)
+ (( $+commands[pigz] )) && { tar -I pigz -xvf "$file" } || tar zxvf "$file" ;;
+ (*.tar.bz2|*.tbz|*.tbz2)
+ (( $+commands[pbzip2] )) && { tar -I pbzip2 -xvf "$file" } || tar xvjf "$file" ;;
(*.tar.xz|*.txz)
+ (( $+commands[pixz] )) && { tar -I pixz -xvf "$file" } || {
tar --xz --help &> /dev/null \
&& tar --xz -xvf "$file" \
- || xzcat "$file" | tar xvf - ;;
+ || xzcat "$file" | tar xvf - } ;;
(*.tar.zma|*.tlz)
tar --lzma --help &> /dev/null \
&& tar --lzma -xvf "$file" \