温馨提示×

centos extract怎么写脚本

小樊
36
2026-09-11 23:18:09
栏目: 智能运维

在 CentOS(或一般 Linux)里,“extract”通常不是系统自带命令,而是大家自己写的一个解压脚本/函数,用来自动识别压缩格式并解压。

下面给你几种常见写法,从简单脚本到常用函数都有。


一、最常用:extract 解压脚本(推荐)

1️⃣ 创建脚本

vim /usr/local/bin/extract

2️⃣ 写入内容

#!/bin/bash

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

for file in "$@"; do
    if [ ! -f "$file" ]; then
        echo "文件不存在: $file"
        continue
    fi

    case "$file" in
        *.tar)       tar xvf "$file" ;;
        *.tar.gz)    tar xzvf "$file" ;;
        *.tgz)       tar xzvf "$file" ;;
        *.tar.bz2)   tar xjvf "$file" ;;
        *.tar.xz)    tar xJvf "$file" ;;
        *.gz)        gunzip "$file" ;;
        *.bz2)       bunzip2 "$file" ;;
        *.xz)        unxz "$file" ;;
        *.zip)       unzip "$file" ;;
        *.rar)       unrar x "$file" ;;
        *.7z)        7z x "$file" ;;
        *)           echo "不支持的格式: $file" ;;
    esac
done

3️⃣ 赋予执行权限

chmod +x /usr/local/bin/extract

4️⃣ 使用方式

extract test.tar.gz
extract a.zip b.tar.xz

二、写成 Shell 函数(更轻量)

如果你不想建文件,可以直接加到:

~/.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" ;;
            *.gz)      gunzip "$1" ;;
            *.bz2)     bunzip2 "$1" ;;
            *.xz)      unxz "$1" ;;
            *)         echo "无法识别: $1" ;;
        esac
    else
        echo "文件不存在: $1"
    fi
}

生效:

source ~/.bashrc

三、可能缺的工具(CentOS 安装)

有些格式需要额外安装:

yum install -y unzip bzip2 xz unrar p7zip

四、进阶(可选)

  • 自动解压到同名目录
  • 支持密码 zip
  • 支持批量目录

如果你愿意,我可以帮你写一个**“解压到指定目录”的版本或企业级脚本**。

你是想用在服务器运维还是个人方便使用?

0 踩