diff --git a/utilities/utilities.plugin.zsh b/utilities/utilities.plugin.zsh index 2806225..eeaf665 100644 --- a/utilities/utilities.plugin.zsh +++ b/utilities/utilities.plugin.zsh @@ -25,19 +25,19 @@ fi extract() { if [ -f $1 ]; then case $1 in - *.tar.bz2) tar xvjf $1 ;; - *.tar.gz) tar xvzf $1 ;; - *.tar.xz) gunzip $1 ;; - *.bz2) bunzip2 $1 ;; - *.rar) unrar x $1 ;; - *.gz) gunzip $1 ;; - *.tar) tar xvf $1 ;; - *.tbz2) tar xvjf $1 ;; - *.tgz) tar xvzf $1 ;; - *.zip) unzip $1 ;; - *.Z) uncompress $1 ;; - *.7z) 7zr x $1 ;; - *) echo "$fg[red]error:$reset_color unable to extract '$1'" ;; + *.tar.bz2) tar xvjf $1 ;; + *.tar.gz) tar xvzf $1 ;; + *.tar.xz) [ `"uname"` = "Darwin" ] && tar xvJf $1 || gunzip $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xvf $1 ;; + *.tbz2) tar xvjf $1 ;; + *.tgz) tar xvzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1 ;; + *.7z) 7zr x $1 ;; + *) echo "$fg[red]error:$reset_color unable to extract '$1'" ;; esac else echo "$fg[red]error:$reset_color file not found '$1'"