【Linux】归档压缩文件(tar | gzip)

摘要

本文将介绍如何在 Linux 中打包和压缩文件,以及如何解压和解包。

引言

何谓打包文件?就是将多个文件或一个目录打包为一个大文件。Linux 中可以使用 tar 命令进行打包。tar 是一个古老的命令,其最初目的是用于将文件备份到磁带上,tar 即英文 tape archive 的缩写。tar 命令执行打包的原理很简单,就是将多个文件前后连在一起,形成一个大文件。tar 命令并不对文件进行压缩。

何谓压缩文件?就是将多个文件或一个目录压缩为一个大文件。Linux 中可以使用 gzip 命令进行压缩。gzip 压缩后的文件大小会小于压缩前所有文件大小之和。但 gzip 命令无法直接将多个文件或目录压缩为单个包,因此一般需要搭配 tar 来使用。

用法

打包

使用 tar 命令进行打包至少得跟两个选项:-c 和 -f,拼接在一起就是 -cf,-c 表示创建打包文件,-f 指定打包的文件名。其后还要跟两个参数:[打包文件名] 和 [要打包的文件/列表],示例如下:

  • tar -cf test.tar *.txt:将当前工作目录下所有以 .txt 结尾的文件打包为一个名为 test.tar 的文件
  • tar -cf test.tar test:将当前工作目录下的 test 目录打包为一个名为 test.tar 的文件
  • tar -tf test.tar:列出归档内容(不解包)
  • tar -f test.tar --delete 1.txt:从 test.tar 归档中删除名为 1.txt 的文件
  • tar -f test.tar -A result.tar:合并 result.tar 到 test.tar 中
  • tar -f test.tar -r 1.txt:向 test.tar 中添加 1.txt
  • tar -xf test.tar -C test:解包 test.tar 到当前目录
  • tar -xf test.tar -C test:解包 test.tar 到 -C 参数指定的 test 目录下
$ ls
1.txt  2.txt  result
$ tar -cf test.tar *.txt
$ tar -tf test.tar
1.txt
2.txt
$ ls
1.txt  2.txt  result  test.tar
$ tar -f test.tar --delete 1.txt
$ tar -tf test.tar
2.txt
$ tar -cf result.tar result/
$ tar -f test.tar -A result.tar 
$ tar -tf test.tar 
2.txt
result/
result/3.txt
$ tar -f test.tar -r 1.txt
$ tar -tf test.tar
2.txt
result/
result/3.txt
1.txt
$ mkdir test
$ tar -xf test.tar -C test
$ ls -R test
test:
1.txt  2.txt  result

test/result:
3.txt

注意,用 ls -l 命令可以发现,打包后的 .tar 文件大小比打包之前的所有文件大小之和还要大,原因是打包时会添加一些额外信息,同时也印证了 tar 命令是不会压缩文件的。

压缩

Linux 中文件压缩命令有多种,其中最常用的就是 gzip,其用法如下:

  • gzip test.tar:压缩 test.tar(会自动覆盖原归档并添加 .gz 的后缀用于标识,默认压缩比为 6)
  • gzip -d test.tar.gz:解压 test.tar.gz
  • gzip -9 test.tar:使用最大压缩比 9 来压缩 test.tar (压缩速度最慢,但压缩后的文件最小)

在这里插入图片描述

打包+压缩↔️解压+解包

虽然 gzip 命令可以提供高效的压缩,但不提供打包功能,也就是说 gzip 只能单个地压缩文件,而不能将多个文件或整个目录压缩到一个文件中。因此,gzip 命令往往要和 tar 命令一起连用,一般先使用 tar 打包,再用 gzip 压缩。反过来,则要使用 gzip 解压,再使用 tar 解包。

为方便起见,tar 还提供了特殊选项可以调用 gzip 命令,可以让打包压缩和解压解包一气呵成。这个选项就是 -z,下面我们给出实例来进行说明:

  • tar -czf test.tar.gz *.txt:将当前工作目录下所有以 .txt 结尾的文件打包并压缩为一个名为 test.tar.gz 的文件
  • tar -xzf test.tar.gz -C test:解压并解包 test.tar.gz 到 -C 参数指定的 test 目录下
$ ls
1.txt  2.txt  result
$ tar -czf test.tar.gz *.txt
$ ls
1.txt  2.txt  result  test.tar.gz
$ tar -tzf test.tar.gz
1.txt
2.txt
$ mkdir test
$ tar -xzf test.tar.gz -C test
$ ls test
1.txt  2.txt

参考

中国大学 MOOC | Linux系统管理 | 主题04 | 小节 1 | 归档压缩文件

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: tarLinux系统中常用的压缩文件命令,可以将多个文件或目录打包成一个文件,并进行压缩tar命令的语法为:tar [选项] [文件名],其中选项包括:-c(创建新的归档文件)、-x(从归档文件中提取文件)、-v(显示详细信息)、-f(指定归档文件名)、-z(使用gzip压缩)、-j(使用bzip2压缩)等。例如,将目录/home/user1下的所有文件打包成一个名为backup.tar的文件,可以使用命令:tar -cvf backup.tar /home/user1。 ### 回答2: Tar 是一种常用的 Linux 压缩文件命令,可将多个文件或目录打包成一个文件,便于传输或备份。下面将详细介绍 tar 命令的使用方法和常用选项。 tar 命令的语法: ``` tar [-z|-j] [-x] [-v] [-f <打包后的文件名>] [<需要打包的文件或目录>] ``` 选项说明: - -z:使用 gzip 压缩文件,一般用于创建 .tar.gz 文件 - -j:使用 bzip2 压缩文件,一般用于创建 .tar.bz2 或 .tar.xz 文件 - -x:解压缩文件 - -v:显示压缩或解压缩的详细过程 - -f:指定生成的文件名 常用操作: 1. 打包命令: ``` tar -cvf <打包后的文件名> <需要打包的文件或目录> ``` 例如: ``` tar -cvf files.tar /dir1 /dir2/file.txt ``` 打包后的文件名为 files.tar,需要打包的是目录 /dir1 和文件 /dir2/file.txt。 2. 压缩命令: ``` tar -zcvf <打包后的文件名>.tar.gz <需要打包的文件或目录> ``` 例如: ``` tar -zcvf files.tar.gz /dir1 /dir2/file.txt ``` 打包后的文件名为 files.tar.gz,需要打包的是目录 /dir1 和文件 /dir2/file.txt。 3. 解包命令: ``` tar -xvf <需要解包的文件名> ``` 例如: ``` tar -xvf files.tar.gz ``` 解包文件 files.tar.gz。 4. 查看压缩包内容: ``` tar -ztvf <需要查看的文件名> ``` 例如: ``` tar -ztvf files.tar.gz ``` 查看文件 files.tar.gz 中的内容及文件权限等信息。 总结: 以上是 tar 命令的基本用法及常用操作,可以有效地提高文件压缩和备份的效率。在使用时需注意选择合适的压缩方式,以及正确指定文件名和目录。 ### 回答3: tar命令是Linux系统中的压缩文件命令,它的功能十分强大,可用于将一个或多个文件或目录打包成一个tar归档文件,并且可以让用户对归档文件进行压缩、解压缩、合并和分割等一系列操作。下面我们来详细介绍一下tar命令。 tar命令的基本语法: tar [选项] [归档文件名] [文件或目录列表] tar命令的选项: -c:创建 tar 文件。 -x:从 tar 文件中提取文件。 -t:提取出 tar 文件中的内容列表。 -f:用指定的文件名创建 tar 文件。 -r:向 tar 文件中追加文件。 -u:更新 tar 文件中的文件。 -v:显示 tar 文件操作的详细信息。 -z:使用 gzip 压缩或解压缩 tar 文件。 -j:使用 bzip2 压缩或解压缩 tar 文件。 --exclude:排除指定文件或目录。 --remove-files:在归档前删除源文件。 tar命令的常用操作: 1、创建一个tar归档文件 $ tar -cvf archive.tar file1 file2 file3 2、压缩打包的归档文件 $ tar -czvf archive.tar.gz file1 file2 file3 3、解压缩一个tar归档文件 $ tar -xvf archive.tar 4、解压缩压缩归档文件 $ tar -xzvf archive.tar.gz 5、合并多个tar归档文件 $ cat archive1.tar archive2.tar > archive-all.tar 6、分割一个归档文件 $ tar -cvz archive.tar.gz | split -b 100M - archive.tar.gz.part. 总之,tar命令是Linux系统中的压缩文件命令中最为常用和强大的工具之一,能够为用户提供丰富且灵活的文件归档压缩操作,是Linux系统管理和运维工作中的重要工具之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xavier Jiezou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值