欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux学习笔记:Linux解压缩与压缩

程序员文章站 2022-05-27 16:59:49
...

多个文件打包的压缩/解压缩

要想将多个文件或目录压缩到一个文件,需要使用打包命令tar.

解压缩

先上结论,如果压缩文件扩展名是.tar.gz,使用:

tar -zxv -f filename.tar.gz -C 欲解压到的目录(必须存在)
tar -zxv -f filename.tar.gz    # 直接解压到当前目录

如果压缩文件扩展名是.tar.bz2, 使用:

tar -jxv -f filename.tar.bz2

选项参数说明:
-x:解压缩
-j :使用bzip2进行压缩/解压缩
-z:使用gzip进行压缩/解压缩
-v:指列出正在处理的文件名,即压缩文件内的文件名
-f filename:-f 后面紧接要被处理的文件名
-C 目录 : 只用在解压缩,用来指定目录,类似于windows下的解压到

如果只解压打包文件中的一个:
格式为:tar -zxv -f filename.tar.bz2 待解压文件名
如:

[[email protected] ~]$ tar -ztv -f t.tar.gz  # 使用-t 查看压缩文件内的文件信息
drwxrwxr-x light/light       0 2019-11-15 11:52 test/
-rw-r----- light/light       0 2019-11-13 14:38 test/testfile
-rw-rw-rw- light/light       9 2019-11-15 11:06 test/hello1
-rw-rw-rw- light/light      50 2019-11-15 11:52 test/hello

[[email protected] ~]$ tar -zxv -f t.tar.gz test/hello  # 只解压 test/hello
test/hello

[[email protected] ~]$ ls test
hello

压缩

tar [-j|-z] [cv] [-f 要建立的文件名,需要自己加扩展名] filename(要被压缩的文件或目录名称 )

其中
-c:建立打包文件,需注意这里只是单纯的打包,使用-j-z选项才会使用对应的算法压缩
如:

tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
tar -zcv -f filename.tar.gz 要被压缩的文件或目录名称

如:
要压缩test文件夹为test.tar.gz,命令如下:

tar -zv -f test.tar.gz test

查询

查询被压缩文件里有哪些文件, 使用-t选项:

tar -ztv -f filename.tar.gz

如:

[[email protected] ~]$ tar -ztv -f t.tar.gz
drwxrwxr-x light/light       0 2019-11-15 11:52 test/
-rw-r----- light/light       0 2019-11-13 14:38 test/testfile
-rw-rw-rw- light/light       9 2019-11-15 11:06 test/hello1
-rw-rw-rw- light/light      50 2019-11-15 11:52 test/hello

[[email protected] ~]$ tar -zt -f t.tar.gz    # 去掉 v
test/
test/testfile
test/hello1
test/hello

-c -x -t选项不能同时使用,每次只能用其中一个

另外的选项:

-p  :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P  :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在打包的过程中,排除FILE! 

单个文件的压缩与解压缩

压缩

gzip filename
bzip2 filename

解压缩

gzip -d filename
bzip2 -d filename

查看

zcat filename.gz  # 查看gzip压缩的文件内容
bzcat filename.bz2  # 查看bzip2压缩的文件内容
相关标签: tar