常用解压脚本

93 阅读1分钟

将下面的代码保存成untar.sh,

#!/bin/bash

# 检查是否传入了文件名
if [ -z "$1" ]; then
    echo "Usage: $0 <filename>"
    exit 1
fi

FILENAME="$1"
EXTENSION="${FILENAME##*.}"  # 获取文件后缀

# 检查是否安装了多线程工具
check_command() {
    if command -v "$1" >/dev/null 2>&1; then
        return 0  # 已安装
    else
        return 1  # 未安装
    fi
}

# 根据文件后缀选择解压方法
case "$EXTENSION" in
    gz)
        if check_command "pigz"; then
            tar -I pigz -xf "$FILENAME"
        else
            tar -xzf "$FILENAME"
        fi
        ;;
    bz2)
        if check_command "pbzip2"; then
            tar -I pbzip2 -xf "$FILENAME"
        else
            tar -xjf "$FILENAME"
        fi
        ;;
    xz)
        if check_command "pxz"; then
            tar -I pxz -xf "$FILENAME"
        else
            tar -xJf "$FILENAME"
        fi
        ;;
    tar)
        tar -xf "$FILENAME"
        ;;
    zip)
        unzip "$FILENAME"
        ;;
    rar)
        tar -zxf "$FILENAME"
        ;;
    tgz)
        tar -zxf "$FILENAME"
        ;;
    *)
        echo "Unsupported file extension: .$EXTENSION"
        exit 1
        ;;
esac

# 检查是否解压成功
if [ $? -eq 0 ]; then
    echo "Extraction completed successfully."
else
    echo "Extraction failed."
    exit 1
fi

然后保存到快捷命令

ln -s /opt/untar.sh /usr/local/bin/untar

使用方法:

untar test.tar.gz
untar test.tgz
untar test.bz2
untar test.xz