2014-04-07 46 views
0

我在网上找到了以下脚本。说明书将其添加到〜/ .bashrc中。它工作正常,直到我安装了我的Linux发行版的64位版本。 (Kali Linux - Debian Wheezy)。我不确定发生了什么事。为什么它不工作,我该如何解决它?我对Linux比较陌生,对bash脚本完全陌生。 脚本:All in One Unarchive bash脚本Linux

#!/bin/bash 
# function Extract for common file formats 

function extract { 
if [ -z "$1" ]; then 
    # display usage if no parameters given 
    echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>" 
else 
    if [ -f $1 ] ; then 
     # NAME=${1%.*} 
     # mkdir $NAME && cd $NAME 
     case $1 in 
      *.tar.bz2) tar xvjf ../$1 ;; 
      *.tar.gz) tar xvzf ../$1 ;; 
      *.tar.xz) tar xvJf ../$1 ;; 
      *.lzma)  unlzma ../$1  ;; 
      *.bz2)  bunzip2 ../$1  ;; 
      *.rar)  unrar x -ad ../$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  ;; 
      *.xz)  unxz ../$1  ;; 
      *.exe)  cabextract ../$1 ;; 
      *)   echo "extract: '$1' - unknown archive method" ;; 
     esac 
    else 
     echo "$1 - file does not exist" 
    fi 
fi 
} 

错误:

extract LibreOffice.tar.gz 
tar (child): ../LibreOffice.tar.gz: Cannot open: No such file or directory 
tar (child): Error is not recoverable: exiting now 
tar: Child returned status 2 
tar: Error is not recoverable: exiting now 

编辑:取消注释Name=...mkdir $NAME...解压缩焦油就好了。不过,它并没有解压缩.zip。立即尝试使用不同的文件。

编辑2:我觉得真的很愚蠢。在发布此消息之前,我并没有打算查看代码。取消注释修复此问题。但是,为什么现在我必须取消注释代码,但在安装64位版本之前,我没有?

+0

它仍然是技术上的提取,如果你有在你的父目录和输出的压缩文件到您的工作目录。否则,除非你正在改变shell或其他东西,否则不会有任何区别的64位/ 32位。 – BroSlow

+0

这就是我的想法,但我收到了一些奇怪的错误。 – Crysis

回答

1

该问题已通过取消注释解决。

# NAME=${1%.*}

# mkdir $NAME && cd $NAME