开源命令行gz
gz是一个使用Go语言实现的智能压缩解压工具,能够根据文件后缀自动识别并选择合适的压缩/解压方法。
功能特性
- 🎯 自动格式识别:根据文件扩展名自动选择压缩/解压方法
- 📦 多格式支持:支持8种常见压缩格式
- 🗂️ 智能目录管理:解压时自动创建目录,目录名为压缩包名称前缀
- 📁 散乱文件处理:自动检测并整理散乱文件到统一目录
支持的格式
zip- ZIP压缩格式tar- TAR归档格式tar.gz/tgz- TAR+GZIP压缩tar.bz2- TAR+BZIP2压缩tar.xz- TAR+XZ压缩gz- GZIP单文件压缩bz2- BZIP2单文件压缩7z- 7-Zip压缩格式
安装
方法一:使用 go install(推荐)
下载最新的release包
方法二:使用 go install(推荐)
如果你已经安装了 Go 1.16 或更高版本,可以直接使用 go install 命令安装:
go install github.com/panyingyun/gz@latest
安装完成后,确保 $GOPATH/bin 或 $HOME/go/bin 在你的 PATH 环境变量中,然后就可以直接使用 gz 命令了。
方法三:使用 go install(不推荐,需要自己有编译环境)
# 克隆仓库
git clone https://github.com/panyingyun/gz.git
cd gz
# 构建
make build
使用方法
压缩文件/目录
# 压缩为ZIP格式
gz zip images.zip folder/
# 压缩为TAR.GZ格式
gz zip source.tar.gz folder/
# 压缩为TAR.BZ2格式
gz zip archive.tar.bz2 folder/
# 压缩为7Z格式
gz zip archive.7z folder/
解压文件
# 解压ZIP文件
gz unzip archive.zip
# 解压TAR.GZ文件
gz unzip archive.tar.gz
# 解压TAR.XZ文件
gz unzip archive.tar.xz
# 解压7Z文件
gz unzip archive.7z
特性说明
自动目录创建
解压时会自动创建一个目录,目录名为压缩包名称的前缀。
例如:
- 解压 archive.zip → 创建 archive/ 目录
- 解压 source.tar.gz → 创建 source/ 目录
散乱文件处理
当压缩包内包含散乱的文件(未包含在一个统一的文件夹中)时,工具会自动创建一个 extracted/ 目录,将所有文件整理到该目录中,保持文件结构的整洁。
示例
# 压缩当前目录下的docs文件夹为ZIP格式
gz zip docs.zip docs/
# 解压下载的压缩包
gz unzip download.tar.gz
# 会自动创建 download/ 目录,并将内容解压到其中
# 如果压缩包内文件散乱,会自动整理到 extracted/ 目录
gz unzip messy_files.zip
# 散乱文件会被整理到 download/extracted/ 目录中