0

我在网上找到了以下脚本。说明是将其添加到 ~/.bashrc。在我安装了 64 位版本的 Linux 发行版之前,它运行良好。(Kali Linux - Debian Wheezy)。我不确定发生了什么事。为什么它不起作用,我该如何解决?我对 Linux 比较陌生,对 bash 脚本完全陌生。脚本:

#!/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位版本之前,我没有?

4

1 回答 1

1

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

# NAME=${1%.*}

# mkdir $NAME && cd $NAME

于 2014-04-09T00:22:47.340 回答