# 创建.tar归档(仅打包,不压缩)
tar -cf archive.tar file1 file2 directory/
# 创建.tar.gz压缩(gzip压缩)
tar -czf archive.tar.gz file1 file2 directory/
# 创建.tar.bz2压缩(bzip2压缩,压缩率更高)
tar -cjf archive.tar.bz2 file1 file2 directory/
# 创建.tar.xz压缩(xz压缩,压缩率最高)
tar -cJf archive.tar.xz file1 file2 directory/
# 解压缩
tar -xf archive.tar.gz
# 压缩文件(会替换原文件)
gzip filename
# 压缩并保留原文件
gzip -c filename > filename.gz
# 解压缩
gunzip filename.gz
# 压缩
bzip2 filename
# 解压缩
bunzip2 filename.bz2
# 安装zip工具
sudo dnf install zip unzip
# 压缩文件/目录
zip -r archive.zip file1 directory/
# 加密压缩(添加密码)
zip -re secure.zip file1
# 解压缩
unzip archive.zip
# 安装
sudo dnf install p7zip
# 压缩
7z a archive.7z file1 directory/
# 解压缩
7z x archive.7z
# 安装
sudo dnf install ark
# 已预装,或重新安装
sudo dnf install file-roller
# 压缩当前目录所有.txt文件
tar -czf text_files.tar.gz *.txt
# 压缩多个特定类型文件
zip images.zip *.jpg *.png
# 排除node_modules和.git目录
tar -czf project.tar.gz --exclude='node_modules' --exclude='.git' project/
# 分割为100MB的文件
tar -czf - large_dir/ | split -b 100M - large_dir.tar.gz.
# 合并分卷
cat large_dir.tar.gz.* | tar -xz
# 查看.tar.gz内容
tar -tzf archive.tar.gz
# 查看.zip内容
unzip -l archive.zip
# 查看.7z内容
7z l archive.7z
# 使用pv命令显示进度
tar -czf - large_dir/ | pv > archive.tar.gz
# 安装pv
sudo dnf install pv
| 格式 | 压缩速度 | 压缩率 | 适用场景 |
|---|---|---|---|
| .tar.gz | 快 | 中等 | 日常使用,Linux通用 |
| .tar.xz | 慢 | 最高 | 需要最大压缩率 |
| .tar.bz2 | 中等 | 高 | 平衡选择 |
| .zip | 快 | 低 | 跨平台(Windows/Mac) |
| .7z | 中等 | 很高 | 需要高压缩率 |
#!/bin/bash
# 备份脚本示例
BACKUP_NAME="backup_$(date +%Y%m%d_%H%M%S)"
SOURCE_DIR="/home/user/documents"
DEST_DIR="/backup"
# 使用xz压缩,中等压缩级别
tar -cJf "${DEST_DIR}/${BACKUP_NAME}.tar.xz" "${SOURCE_DIR}"
# 删除7天前的备份
find "${DEST_DIR}" -name "*.tar.xz" -mtime +7 -delete
sudo或确保对文件有读取权限
磁盘空间不足:先检查可用空间 df -h
文件名编码问题:使用convmv转换文件名编码
断点续传:对大文件使用rsync或专用工具
选择哪种方法取决于你的具体需求:
tar -czftar -cJf(xz格式)在Fedora中,大多数压缩工具已预装或可通过DNF轻松安装。