Linux情况下的压缩解压命令

🧾 压缩/解压速查表

# === gzip 压缩与解压 ===
gzip file.txt              # 压缩为 file.txt.gz
gunzip file.txt.gz         # 解压为 file.txt

# === bzip2 压缩与解压 ===
bzip2 file.txt             # 压缩为 file.txt.bz2
bunzip2 file.txt.bz2       # 解压为 file.txt

# === xz 压缩与解压 ===
xz file.txt                # 压缩为 file.txt.xz
unxz file.txt.xz           # 解压为 file.txt

# === tar 打包与压缩 ===
tar -cvf archive.tar dir/                  # 仅打包
tar -xvf archive.tar                       # 解包

tar -czvf archive.tar.gz dir/             # tar + gzip
tar -xzvf archive.tar.gz                  # 解压 .tar.gz

tar -cjvf archive.tar.bz2 dir/            # tar + bzip2
tar -xjvf archive.tar.bz2                 # 解压 .tar.bz2

tar -cJvf archive.tar.xz dir/             # tar + xz
tar -xJvf archive.tar.xz                  # 解压 .tar.xz

# === zip 与 unzip ===
zip -r archive.zip dir/                   # 压缩为 .zip
unzip archive.zip                         # 解压 .zip

# === 7z 压缩与解压(需安装 p7zip) ===
7z a archive.7z dir/                      # 压缩
7z x archive.7z                           # 解压

🔧 Bash 脚本:压缩/解压助手

这个脚本叫 compressor.sh,支持快速打包压缩和解压。

#!/bin/bash

# 用法说明
usage() {
  echo "用法: $0 compress|extract 文件/目录 [格式]"
  echo "  compress file_or_dir [gz|bz2|xz|zip|7z]"
  echo "  extract file"
  exit 1
}

# 检查参数数量
[ $# -lt 2 ] && usage

mode=$1
target=$2
format=$3

# 压缩功能
compress() {
  case "$format" in
    gz) tar -czvf "$target.tar.gz" "$target" ;;
    bz2) tar -cjvf "$target.tar.bz2" "$target" ;;
    xz) tar -cJvf "$target.tar.xz" "$target" ;;
    zip) zip -r "$target.zip" "$target" ;;
    7z) 7z a "$target.7z" "$target" ;;
    *) echo "不支持的格式: $format" ; exit 2 ;;
  esac
}

# 解压功能
extract() {
  case "$target" in
    *.tar.gz) tar -xzvf "$target" ;;
    *.tar.bz2) tar -xjvf "$target" ;;
    *.tar.xz) tar -xJvf "$target" ;;
    *.tar) tar -xvf "$target" ;;
    *.zip) unzip "$target" ;;
    *.7z) 7z x "$target" ;;
    *.gz) gunzip "$target" ;;
    *.bz2) bunzip2 "$target" ;;
    *.xz) unxz "$target" ;;
    *) echo "无法识别的压缩格式: $target" ; exit 2 ;;
  esac
}

# 执行操作
if [ "$mode" = "compress" ]; then
  compress
elif [ "$mode" = "extract" ]; then
  extract
else
  usage
fi

💡 使用方式:

chmod +x compressor.sh

# 压缩:
./compressor.sh compress myfolder gz

# 解压:
./compressor.sh extract myfolder.tar.gz
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享