Liunx打包压缩

       注:只用记忆tar和gzip,zip/unzip三种命令与常用参数使用方式,其他做为了解

目录

压缩与打包的概念

常用的压缩与打包工具

tar

gzip

bzip2

xz

速记总结

1.使用 tar 进行打包

2.使用 tar 结合压缩工具

3.解压缩与解打包

其他压缩工具(zip)


        在 Linux 上,可以使用多种工具来打包和压缩文件和目录。以下是 Linux 上常用的压缩和打包工具以及它们的用法:

压缩与打包的概念

  • 压缩 指的是将数据以较小的尺寸存储。常见的压缩格式有 gzip、bzip2、xz 、zip等。
  • 打包 指的是将多个文件和目录合并为一个文件,常用的工具是 tar。

常用的压缩与打包工具

tar

tar 用于打包文件和目录。它也可以与压缩工具结合使用以创建压缩的归档文件。tar 支持多种格式,如 .tar.gz.tar.bz2.tar.xz 等。

  • -c: 创建新的归档。
  • -x: 提取(解压缩)归档。
  • -v: 显示操作的详细信息(verbose)。
  • -f: 指定归档文件的文件名。
  • -t: 列出归档中的文件。
  • -z: 使用 gzip 压缩/解压缩。
  • -j: 使用 bzip2 压缩/解压缩。
  • -J: 使用 xz 压缩/解压缩。
  • -C: 指定提取归档的目标目录。
  • -r: 向现有归档中添加文件。
  • -u: 更新现有归档中的文件。
  • -d: 删除归档中的文件。
创建普通 tar 归档

# 创建一个不压缩的 tar 归档
tar -cvf archive.tar file1 file2 dir1
这个命令会将 file1、file2 和 dir1 打包成 archive.tar。

指定输出目录
如果要将压缩文件保存到特定目录,可以使用 gzip -c 选项,将压缩内容输出到标准输出,然后使用重定向将其写入到指定目录。
# 将压缩后的内容保存到特定目录
gzip -c myfile.txt > /path/to/destination/myfile.txt.gz

#-c: 使用 gzip 压缩并输出到标准输出。
#> /path/to/destination/myfile.txt.gz: 将输出重定向到指定目录和文件名。


创建压缩的 tar.gz 归档

# 创建一个 gzip 压缩的 tar 归档
tar -czvf archive.tar.gz file1 file2 dir1
这个命令会创建一个 gzip 压缩的归档 archive.tar.gz。

解压缩和提取归档
解压缩普通 tar 归档

# 提取不压缩的 tar 归档
tar -xvf archive.tar
这个命令会解包 archive.tar 并在当前目录提取内容。

解压缩 tar.gz 归档

# 提取 gzip 压缩的 tar 归档
tar -xzvf archive.tar.gz
列出归档内容

# 列出 tar 归档中的文件
tar -tvf archive.tar
这个命令会列出 archive.tar 中的所有文件。

解压缩到指定目录

# 将 tar 归档解压缩到指定目录
tar -xvf archive.tar -C /path/to/destination
这个命令会将 archive.tar 中的内容提取到指定的 /path/to/destination 目录。

排除某些文件或目录

# 创建归档时排除某个目录
tar -czvf archive.tar.gz dir1 --exclude="dir1/ignore_this"
这个命令会创建 archive.tar.gz,但排除 dir1/ignore_this 目录。

更新归档

# 更新现有 tar 归档
tar -uvf archive.tar new_file
这个命令会向 archive.tar 中添加 new_file。
gzip

gzip 是一种广泛使用的压缩工具,创建 .gz 文件。它通常与 tar 结合使用,形成 .tar.gz 压缩档。

  • -c: 将压缩输出到标准输出,而不是覆盖原文件。常用于管道操作。
  • -d: 解压缩 .gz 文件。
  • -f: 强制覆盖现有文件,不提示。
  • -k: 压缩时保留原文件。
  • -v: 显示压缩或解压缩的详细信息(verbose)。
  • -r: 递归压缩目录中的文件。
  • --best: 使用最大压缩比。
  • --fast: 使用最小压缩比,速度更快。
压缩文件

# 压缩单个文件
gzip myfile.txt
这会将 myfile.txt 压缩成 myfile.txt.gz,原文件被替换。

保留原文件

# 压缩并保留原文件
gzip -k myfile.txt
这个命令会创建 myfile.txt.gz,但保留原来的 myfile.txt。

压缩目录中的所有文件

# 递归压缩目录中的所有文件
gzip -r mydirectory/
这个命令会压缩 mydirectory 目录中的所有文件,并将它们替换为 .gz 文件。

gzip 解压缩操作
解压缩 .gz 文件

# 解压缩单个文件
gzip -d myfile.txt.gz
这个命令会将 myfile.txt.gz 解压缩为 myfile.txt。

使用 gunzip 解压缩

# 使用 gunzip 解压缩
gunzip myfile.txt.gz
gunzip 是 gzip 的解压缩工具,它的效果与 gzip -d 相同。

使用 gzip 管道
由于 -c 选项可以将输出发送到标准输出,因此可以使用管道将压缩数据直接传递给其他命令。

# 使用 gzip 压缩文件并通过管道发送
gzip -c myfile.txt > compressed.gz
这个命令会压缩 myfile.txt 并将压缩后的数据写入 compressed.gz。

其他常见参数
强制覆盖

# 使用 -f 强制覆盖现有文件
gzip -f myfile.txt
显示详细信息

# 使用 -v 显示压缩信息
gzip -v myfile.txt
使用最佳压缩比

# 使用最佳压缩比
gzip --best myfile.txt
使用最小压缩比

# 使用最小压缩比
gzip --fast myfile.txt

bzip2

bzip2 是一种压缩效率高于 gzip 的工具,创建 .bz2 文件,通常与 tar 结合,形成 .tar.bz2

  • -c: 将压缩或解压缩输出发送到标准输出(常用于管道操作)。
  • -d: 解压缩 .bz2 文件。
  • -k: 压缩时保留原文件。
  • -v: 显示详细信息(verbose),包括压缩率等。
  • -f: 强制覆盖现有文件。
  • -t: 测试压缩文件的完整性。
  • -q: 安静模式,抑制非必要输出。
压缩单个文件

# 压缩 myfile.txt 到 myfile.txt.bz2
bzip2 myfile.txt
这会将 myfile.txt 压缩成 myfile.txt.bz2,原文件会被替换。

保留原文件

# 压缩并保留原文件
bzip2 -k myfile.txt
这个命令会创建 myfile.txt.bz2,但保留原来的 myfile.txt。

使用标准输出

# 将压缩输出发送到标准输出
bzip2 -c myfile.txt > myfile.txt.bz2
这个命令将 myfile.txt 压缩到 myfile.txt.bz2,原文件保持不变。

使用 bzip2 解压缩文件
解压缩单个文件

# 解压缩 myfile.txt.bz2
bzip2 -d myfile.txt.bz2
这个命令会解压缩 myfile.txt.bz2 并将其还原为 myfile.txt。

使用 bunzip2

# 使用 bunzip2 解压缩
bunzip2 myfile.txt.bz2
bunzip2 是 bzip2 的解压缩工具,它的作用与 bzip2 -d 相同。

显示详细信息

# 显示压缩率等详细信息
bzip2 -v myfile.txt
这个命令会显示压缩后的文件信息,包括压缩率。

强制覆盖现有文件

# 使用 -f 强制覆盖
bzip2 -f myfile.txt
如果 myfile.txt.bz2 已存在,使用 -f 参数会强制覆盖。

测试压缩文件的完整性

# 测试压缩文件的完整性
bzip2 -t myfile.txt.bz2
这个命令会测试 myfile.txt.bz2 的完整性,以确保文件没有损坏。

安静模式

# 使用 -q 进入安静模式
bzip2 -q myfile.txt

xz

xz 是一种高压缩率的工具,创建 .xz 文件,与 tar 结合后形成 .tar.xz

  • -c: 将输出发送到标准输出,而不是覆盖原文件。
  • -d: 解压缩文件。
  • -k: 压缩时保留原文件。
  • -f: 强制覆盖现有文件。
  • -v: 显示详细信息(verbose)。
  • -t: 测试压缩文件的完整性。
  • --best: 使用最大压缩比。
  • --fast: 使用最小压缩比,压缩速度更快。
压缩单个文件

# 压缩 myfile.txt 到 myfile.txt.xz
xz myfile.txt
这个命令会将 myfile.txt 压缩成 myfile.txt.xz,原文件会被替换。

保留原文件

# 压缩并保留原文件
xz -k myfile.txt
这个命令会创建 myfile.txt.xz,同时保留原来的 myfile.txt。

使用标准输出

# 压缩并通过标准输出传输
xz -c myfile.txt > compressed.txt.xz
这个命令会压缩 myfile.txt,并将输出发送到 compressed.txt.xz。

使用 xz 解压缩文件
解压缩单个文件

# 解压缩 myfile.txt.xz
xz -d myfile.txt.xz
这个命令会解压缩 myfile.txt.xz 并将其还原为 myfile.txt。

使用 unxz

# 使用 unxz 解压缩
unxz myfile.txt.xz
unxz 是 xz 的解压缩工具,效果与 xz -d 相同。

显示详细信息

# 显示压缩的详细信息
xz -v myfile.txt
这个命令会显示压缩或解压缩的详细信息,包括压缩率和压缩时间。

测试压缩文件的完整性

# 测试压缩文件的完整性
xz -t myfile.txt.xz
这个命令会测试 myfile.txt.xz 的完整性,确保文件没有损坏。

强制覆盖

# 使用 -f 强制覆盖
xz -f myfile.txt
这个命令会强制覆盖已存在的 myfile.txt.xz。

使用最大压缩比

# 使用最大压缩比
xz --best myfile.txt
这个命令会使用最大压缩比,尽可能压缩 myfile.txt。

使用最小压缩比

# 使用最小压缩比
xz --fast myfile.txt

速记总结

 gzip,bzip2,xz对比:

1.压缩比:  xz > bzip2 > gzip   (即xz压缩的最小)

2.速度:      gzip  > bzip2 > xz   (即压缩的最小的用的时间较长)

3.资源消耗:xz > bzip2 > gzip   (压缩越小的耗费的资源较多)

4.gzip和bzip2,xz都可以结合tar使用

5.三种压缩方式压缩后原文件会被替换,如果需要保留原文件需要加-k, 但是要结合tar的压缩是不需要-k参数的,结合拉tar会默认保留原文件。

6.gzipxzbzip2 通常用于压缩单个文件,而不是目录。如果是目录,需要结合tar使用。

7.使用zip压缩与unzip解压时,原文件都会存在。

1.使用 tar 进行打包

# 将多个文件和目录打包为一个 tar 文件 
tar -cvf archive.tar file1 file2 dir1
  • -c: 创建新的归档。
  • -v: 显示操作的详细信息。
  • -f: 指定归档文件名。

2.使用 tar 结合压缩工具

# 创建一个 gzip 压缩的 tar 文件 
tar -czvf archive.tar.gz file1 file2 dir1 
# 创建一个 bzip2 压缩的 tar 文件 
tar -cjvf archive.tar.bz2 file1 file2 dir1 
# 创建一个 xz 压缩的 tar 文件 
tar -cJvf archive.tar.xz file1 file2 dir1
  • -z: 使用 gzip 压缩。
  • -j: 使用 bzip2 压缩。
  • -J: 使用 xz 压缩。

3.解压缩与解打包

# 解包一个普通的 tar 文件
tar -xvf archive.tar

# 解压缩并提取一个 gzip 压缩的 tar 文件 
tar -xzvf archive.tar.gz 
# 解压缩并提取一个 bzip2 压缩的 tar 文件 
tar -xjvf archive.tar.bz2 
# 解压缩并提取一个 xz 压缩的 tar 文件 
tar -xJvf archive.tar.xz
  • -x: 解打包/提取归档内容。

其他压缩工具(zip)

  • zipunzip: 用于创建和解压缩 ZIP 文件。常用于与 Windows 兼容的压缩格式。
# 创建一个 zip 文件 
zip archive.zip file1 file2 dir1 
# 解压缩 zip 文件 
unzip archive.zip

zip参数 :

  • -r: 递归压缩目录及其内容。
  • -e: 对 ZIP 文件进行加密。
  • -9: 使用最佳压缩比。
  • -0: 不进行压缩,仅打包。
  • -q: 安静模式,减少输出信息。
  • -j: 不保存目录结构,将所有文件扁平化。
  • -x: 排除某些文件或目录。
压缩单个文件

# 将 myfile.txt 压缩为 myarchive.zip
zip myarchive.zip myfile.txt
这个命令会将 myfile.txt 压缩到 myarchive.zip。

递归压缩目录

# 递归压缩目录
zip -r myarchive.zip mydirectory/
这个命令会将 mydirectory 目录及其所有子目录和文件压缩到 myarchive.zip。

不保存目录结构

# 扁平化压缩,不保存目录结构
zip -j myarchive.zip mydirectory/*
这个命令会将 mydirectory 中的文件压缩到 myarchive.zip,但不会保留目录结构。

加密 ZIP 文件

# 压缩并加密 ZIP 文件
zip -e myarchive.zip myfile.txt
这个命令会要求输入密码,并加密 ZIP 文件。

排除某些文件

# 压缩时排除特定文件
zip -r myarchive.zip mydirectory/ -x "mydirectory/exclude_this/*"
这个命令会将 mydirectory 中的文件和子目录压缩到 myarchive.zip,但排除 exclude_this 目录及其内容。

unzip参数:

  • -d: 指定解压缩目录。
  • -q: 安静模式。
  • -l: 列出 ZIP 文件中的内容。
  • -o: 强制覆盖现有文件。
  • -n: 不覆盖现有文件。
  • -t: 测试 ZIP 文件的完整性
解压缩到当前目录

# 解压缩 ZIP 文件到当前目录
unzip myarchive.zip
这个命令会将 myarchive.zip 的内容解压缩到当前目录。

指定解压缩目录

# 解压缩到指定目录
unzip myarchive.zip -d /path/to/destination
这个命令会将 myarchive.zip 解压缩到指定目录。

列出 ZIP 文件内容

# 列出 ZIP 文件中的内容
unzip -l myarchive.zip
这个命令会列出 myarchive.zip 中的文件和目录。

测试 ZIP 文件的完整性

# 测试 ZIP 文件的完整性
unzip -t myarchive.zip
这个命令会检查 ZIP 文件是否损坏或不完整。

强制覆盖或不覆盖

# 强制覆盖现有文件
unzip -o myarchive.zip

# 不覆盖现有文件
unzip -n myarchive.zip
  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值