linux压缩命令

在 Linux 系统里,可运用多种命令来完成打包压缩操作,下面为你介绍一些常用的工具及其使用方法。

tar的常用选项如下:

-c: 创建新的归档文件。
-x: 解开已有的归档文件。
-t: 列出归档文件的内容。
-f: 指定归档文件名。
-v: 显示详细的过程。
-p: 保留原始文件的权限和其他属性。
-z: 使用 gzip 压缩或解压归档文件。
-j: 使用 bzip2 压缩或解压归档文件。
-J: 使用 xz 压缩或解压归档文件。
-u: 更新归档文件,只添加那些比归档中的副本新的文件。
-a: 自动选择压缩方式(根据归档文件扩展名 .gz, .bz2 或 .xz)。
-C: 指定解压文件的目标目录。
-P 或 -p: 使用绝对路径而不是相对路径。
————————————————

1. tar 命令(仅打包不压缩)

借助tar命令能够把多个文件或目录整合为一个文件,不过它并不具备压缩功能。

bash
 
 
# 创建打包文件
tar -cvf archive.tar files/ directories/

# 查看打包文件内容
tar -tvf archive.tar

# 解压文件
tar -xvf archive.tar -C /path/to/extract/
 

参数说明如下:

  • -c:创建新的打包文件。
  • -x:对打包文件进行解压操作。
  • -v:在操作过程中显示详细信息。
  • -f:用于指定打包文件的名称。
  • -t:查看打包文件中包含的内容。
  • -C:指定解压文件的目标路径。

2. tar + gzip(.tar.gz 或 .tgz)

若想实现更高的压缩率,可以把targzip结合起来使用。

bash
 
 
# 创建压缩包
tar -czvf archive.tar.gz files/ directories/

# 解压压缩包
tar -xzvf archive.tar.gz -C /path/to/extract/
 

参数说明:

  • -z:调用 gzip 进行压缩或解压。

3. tar + bzip2(.tar.bz2)

bzip2的压缩率比gzip更高,但相应地,压缩时间也会更长。

bash
 
 
# 创建压缩包
tar -cjvf archive.tar.bz2 files/ directories/

# 解压压缩包
tar -xjvf archive.tar.bz2 -C /path/to/extract/
 

参数说明:

  • -j:调用 bzip2 进行压缩或解压。

4. zip 命令(.zip)

zip是一种跨平台的压缩格式,在 Linux 中也能使用。

bash
 
 
# 创建压缩包
zip -r archive.zip files/ directories/

# 解压压缩包
unzip archive.zip -d /path/to/extract/
 

参数说明:

  • -r:递归处理目录,将目录下的所有文件和子目录都进行压缩。

5. 7z 命令(.7z)

7z采用了高效的压缩算法,能达到极高的压缩率。

bash
 
 
# 安装p7zip软件包(如果未安装)
sudo apt-get install p7zip-full  # Debian/Ubuntu
sudo yum install p7zip  # CentOS/RHEL

# 创建压缩包
7z a archive.7z files/ directories/

# 解压压缩包
7z x archive.7z -o/path/to/extract/
 

参数说明:

  • a:添加文件到压缩包。
  • x:以完整路径解压文件。
  • -o:指定解压的目标目录。

6. 其他压缩格式

bash
 
 
# .gz格式(单个文件压缩)
gzip file.txt  # 压缩后会生成file.txt.gz
gunzip file.txt.gz  # 解压

# .bz2格式(单个文件压缩)
bzip2 file.txt  # 压缩后会生成file.txt.bz2
bunzip2 file.txt.bz2  # 解压

# .xz格式(单个文件压缩)
xz file.txt  # 压缩后会生成file.txt.xz
unxz file.txt.xz  # 解压

常用场景示例

bash
 
# 压缩当前目录下的所有jpg文件
tar -czvf images.tar.gz *.jpg

# 递归压缩my_project目录
zip -r my_project.zip my_project/

# 解压到指定目录
unzip download.zip -d ~/Documents/
 你可以根据实际需求来选择合适的压缩工具和格式。要是追求高压缩率,建议选用7zbzip2;如果需要考虑跨平台兼容性,那么zip是个不错的选择;而tar+gzip则是 Linux 系统中最为常用的压缩组合。
 
 ------------------------------------------------------------------------------------------------
 

一、命令简介
tar(Tape ARchive)是 Linux 和 UNIX 系统中常用的归档工具,用于打包多个文件或目录为一个 .tar 文件,并可结合压缩工具(如 gzip、bzip2、xz)生成 .tar.gz、.tar.bz2 等格式的压缩包。

虽然 tar 最初是为磁带设备设计的归档工具,但如今已广泛应用于本地文件打包、压缩传输、备份恢复等场景,是日常运维和开发中不可或缺的工具之一。

二、命令语法
tar [选项]... [文件]...
AI生成项目
常见基本用法格式:

tar -cvf archive.tar file1 file2 dir/
tar -xvf archive.tar
tar -tzf archive.tar.gz
AI生成项目
三、常用选项说明
选项 说明
-c 创建新归档(create)
-x 解包归档(extract)
-t 显示归档内容(list)
-f <文件名> 指定归档文件名(file)
-v 显示详细过程(verbose)
-z 使用 gzip 压缩或解压(.tar.gz)
-j 使用 bzip2 压缩或解压(.tar.bz2)
-J 使用 xz 压缩或解压(.tar.xz)
-C <目录> 解压到指定目录
--exclude=<模式> 排除匹配的文件或目录
--remove-files 打包后删除原文件(归档后清理)
四、归档压缩操作示例
1. 创建 .tar 归档文件
tar -cvf backup.tar file1.txt file2.txt dir/
AI生成项目
创建名为 backup.tar 的归档包。

包含两个文件和一个目录。

不压缩,仅打包。

2. 创建 .tar.gz 归档(gzip压缩)
tar -czvf backup.tar.gz /home/user/
AI生成项目
-z 使用 gzip 压缩。

适合打包后直接传输或下载。

3. 创建 .tar.bz2 归档(bzip2压缩)
tar -cjvf backup.tar.bz2 mydata/
AI生成项目
bzip2 压缩率高于 gzip,适合空间敏感的备份。

4. 创建 .tar.xz 归档(xz压缩)
tar -cJvf backup.tar.xz ./project/
AI生成项目
xz 是压缩率最高但较慢的格式,适合归档归档长期存放数据。

5. 只打包,不压缩
tar -cvf myfiles.tar *.log
AI生成项目
创建未压缩的 .tar 文件,适合只做归档(如备份)

五、解包解压操作示例
1. 解包 .tar 文件
tar -xvf archive.tar
AI生成项目
将 archive.tar 解包到当前目录。

2. 解压 .tar.gz 文件
tar -xzvf archive.tar.gz
AI生成项目
3. 解压 .tar.bz2 文件
tar -xjvf archive.tar.bz2
AI生成项目
4. 解压 .tar.xz 文件
tar -xJvf archive.tar.xz
AI生成项目
5. 解压到指定目录
tar -xvf archive.tar -C /tmp/myrestore/
AI生成项目
使用 -C 指定解包目标目录。

六、查看归档内容
tar -tvf archive.tar
AI生成项目
或压缩文件:

tar -tzvf archive.tar.gz
AI生成项目
不解包,仅查看内容。

七、从归档中提取单个文件
tar -xvf archive.tar etc/hosts
AI生成项目
仅提取 etc/hosts 文件(路径区分大小写)。

八、排除文件打包
tar -czvf backup.tar.gz /home/user --exclude=/home/user/cache
AI生成项目
打包时排除指定目录或文件。

九、归档后删除原始文件
tar -czvf log.tar.gz *.log --remove-files
AI生成项目
打包完成后自动删除源文件,常用于日志压缩归档。

十、典型应用场景
场景 示例
网站备份 打包 /var/www/ 下所有网站文件
日志归档 定期将日志打包转存
发布部署 打包代码目录供其他主机下载
数据迁移 使用 tar 创建压缩包跨服务器传输
灾备还原 配合 cron 做定期打包备份
十一、与其他压缩工具比较
工具 特性 支持压缩格式 优势
tar 打包为主,配合压缩命令使用 gzip、bzip2、xz 打包/压缩一体化,灵活
zip/unzip 打包压缩一体,常见于 Windows zip 跨平台好,支持解压软件多
gzip 仅压缩单个文件 .gz 快速简单
xz 高压缩比 .xz 适合存档保存
7z 高压缩比、加密支持 .7z 功能强但依赖更多工具
十二、注意事项与技巧
.tar.gz ≠ .gz,前者是打包后压缩,后者仅压缩单个文件。

文件名中不要忘记 -f 后要紧跟归档文件名。

使用 --exclude 时路径应准确(绝对路径更稳妥)。

解压路径中应提前创建目录,确保目标文件不会覆盖现有数据。

可与 find、xargs、cron 等组合使用构建自动化脚本。

十三、总结
项目 内容
命令 tar
作用 打包归档,结合压缩工具生成压缩包
常用压缩 .tar.gz, .tar.bz2, .tar.xz
应用场景 数据备份、文件归档、跨主机传输
替代工具 zip, gzip, 7z(可结合使用)
操作建议 使用 -v 查看详情,-C 控制路径,--exclude 排除不需要的文件
tar 是 Linux 世界中无处不在的文件打包压缩工具,其灵活性和脚本友好性使其成为自动化任务和系统备份中的首选工具之一。掌握 tar 的多种使用方法,将显著提升你在 Linux 环境下的效率与可靠性。

 ------------------------------------------------------------------------------------------------
 ------------------------------------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 

 
posted @ 2025-07-16 10:32  hanease  阅读(202)  评论(0)    收藏  举报