温馨提示×

debian extract怎么写脚本

小樊
42
2026-08-31 22:50:02
栏目: 智能运维

在 Debian(或一般 Linux)系统里,“extract”通常指解压各种压缩包。下面给你几种常见写法,从简单脚本万能解压脚本


一、最简单的 extract 脚本(按后缀判断)

#!/bin/bash

if [ $# -ne 1 ]; then
    echo "用法: $0 文件名"
    exit 1
fi

file="$1"

case "$file" in
    *.tar)      tar xf "$file" ;;
    *.tar.gz)   tar xzf "$file" ;;
    *.tgz)      tar xzf "$file" ;;
    *.tar.bz2)  tar xjf "$file" ;;
    *.tar.xz)   tar xJf "$file" ;;
    *.gz)       gunzip "$file" ;;
    *.bz2)      bunzip2 "$file" ;;
    *.zip)      unzip "$file" ;;
    *.rar)      unrar x "$file" ;;
    *.7z)       7z x "$file" ;;
    *)
        echo "不支持的文件格式: $file"
        exit 1
        ;;
esac

保存为 extract.sh

chmod +x extract.sh
./extract.sh file.tar.gz

二、Debian 推荐:使用 atool(一行搞定)

Debian 可直接安装:

sudo apt install atool

使用:

aunpack file.tar.xz

写一个极简脚本:

#!/bin/bash
aunpack "$1"

三、万能 extract 函数(可放进 .bashrc)

extract() {
    if [ -f "$1" ]; then
        case "$1" in
            *.tar.bz2) tar xjf "$1" ;;
            *.tar.gz)  tar xzf "$1" ;;
            *.tar.xz)  tar xJf "$1" ;;
            *.tar)     tar xf "$1" ;;
            *.zip)     unzip "$1" ;;
            *.rar)     unrar x "$1" ;;
            *.7z)      7z x "$1" ;;
            *)         echo "无法解压: $1" ;;
        esac
    else
        echo "文件不存在: $1"
    fi
}

使用:

extract test.zip

四、常见依赖安装

sudo apt install tar gzip bzip2 xz-utils unzip unrar p7zip-full

五、建议

  • 日常使用:atool 最省事
  • 写脚本/服务器:case 判断最稳
  • 放进 .bashrcextract 函数最方便

如果你说的是 “Debian 源码包 extract(dpkg-source -x)”ISO / deb 包解包,可以告诉我具体场景,我给你对应脚本。

0