Linux 解压缩 gz bz2 xz 归档tar 命令

网友投稿 1377 2022-11-30

Linux 解压缩 gz bz2 xz 归档tar 命令

Linux 解压缩 gz bz2 xz 归档tar 命令

Linux的压缩格式有xz,bz2,gz等,不同的压缩格式有着不同的压缩算法,所以压缩的比例也不相同。

gzip工具压缩出来后.gz,bzip2工具压缩后为.bz2,xz工具压缩后.xz。这些工具只能压缩文件不能压缩目录,如果传递文件参数,会将目录里面的文件逐个进行压缩。默认这些命令再压缩之后会删除原文件,只保留压缩后的文件。

(1).gz

gzip工具压缩

[root@localhost ~]# ls -lh messages --可以看到该文件195K-rw-------. 1 root root 195K Feb 26 16:43 messages[root@localhost ~]# gzip messages[root@localhost ~]# ls -lh messages.gz --压缩完之后23K-rw-------. 1 root root 23K Feb 26 16:43 messages.gz[root@localhost ~]# ls --可以看到原文件没有了anaconda-ks.cfg messages.gz

可以看到对文本文件压缩压缩比还是非常大的,但是压缩完之后会删除原文件,而且不能压缩目录,如果压缩目录会将目录下面的每一个文件进行压缩。

gzip /path/to/file_name1  file_name2   后面可以指定多个文件,那么这样会将多个文件逐个进行压缩

gunzip解压缩

[root@localhost ~]# gunzip messages.gz --gunzip后面跟上.gz文件[root@localhost ~]# ls --可以看到解压缩之后.gz压缩文件也被删除了anaconda-ks.cfg messages

当然了,解压缩也可以使用gzip -d来解压缩,相当于gunzip

[root@localhost ~]# gzip messages[root@localhost ~]# gzip -d messages.gz[root@localhost ~]# lsanaconda-ks.cfg messages

如果想要看压缩文件里面的内容,但是不解压可以使用zcat,zcat messages.gz

(2)bzip2(和gizp类似)

比gizp有着更大的压缩比的压缩工具,及压缩后的文件更小。和gzip一样只能压缩文件,不能压缩目录。

[root@localhost ~]# bzip2 ansible.repo --bizp2使用格式就是后面加上文件名[root@localhost ~]# ls --压缩后的文件是以.bz2结尾的anaconda-ks.cfg ansible.repo.bz2 [root@localhost ~]# bzip2 -d ansible.repo.bz2 --也支持-d解压,解压也会删除压缩文件[root@localhost ~]# lsanaconda-ks.cfg ansible.repo [root@localhost ~]# bzip2 -k ansible.repo --使用-k选项可以压缩时候保存原文件不被删除[root@localhost ~]# lsanaconda-ks.cfg ansible.repo ansible.repo.bz2[root@localhost ~]# bunzip2 ansible.repo.bz2 --也可以使用bunzip进行解压[root@localhost ~]# lsanaconda-ks.cfg ansible.repo

最后和gizp一样也可以使用bzcat对压缩文件的内容进行查看

(3)xz

[root@localhost ~]# man xz  --可以看到xz的使用方法和gzip,bzip2类似

DESCRIPTION

xz is a general-purpose data compression tool with command line syntax similar to gzip(1) and bzip2(1).

[root@localhost ~]# xz messages[root@localhost ~]# lsanaconda-ks.cfg messages.xz[root@localhost ~]# xz -d messages.xz[root@localhost ~]# lsanaconda-ks.cfg messages[root@localhost ~]# xz -k messages[root@localhost ~]# lsanaconda-ks.cfg messages messages.xzuxz解压和xzcat来查看

xz,bzip2,gzip压缩比不一样,xz压缩后更小,其次bzip2,最后gzip。

(4)zip

这个和上面不一样,这个可以用来压缩目录,zip后面跟上压缩后保留的文件名,参数可以是多个文件中间空格隔开,或者目录(即归档又压缩的工具)

[root@localhost test]# zip test.zip /test/* adding: test/a.txt (stored 0%) adding: test/b.txt (stored 0%) adding: test/c.txt (stored 0%)[root@localhost test]# ls --可以看到zip压缩后不删除源文件a.txt b.txt c.txt test.zip[root@localhost test]# zip new.zip a.txt b.txt c.txt adding: a.txt (stored 0%) adding: b.txt (stored 0%) adding: c.txt (stored 0%)[root@localhost test]# lsa.txt b.txt c.txt new.zip test.zip解压的命令是unzip

tar命令

tar 由 'Tape archiver(磁带归档器)' 衍生而来,最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件,它可以压缩一组文件(归档),或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面,它是很有用的。在创建归档文件时,Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 ‘.tar’。

-c表示将多个文件归档到一起

-f 表示归档后要指定归档的名字,如.tar,f后面必须跟上xxx.tar

-x 将归档进行展开

--xattrs  归档时,保留文件扩展属性信息,这个在备份时候有用

[root@localhost test]# lslibusal-1.1.11-23.el7.x86_64.rpm libusb-0.1.4-3.el7.i686.rpm libusb-0.1.4-3.el7.x86_64.rpm[root@localhost test]# tar -cf test.tar *.rpm[root@localhost test]# lslibusal-1.1.11-23.el7.x86_64.rpm libusb-0.1.4-3.el7.i686.rpm libusb-0.1.4-3.el7.x86_64.rpm test.tar[root@localhost test]# tar -xf test.tar --可以看到.tar文件还是存在的[root@localhost test]# lslibusal-1.1.11-23.el7.x86_64.rpm libusb-0.1.4-3.el7.i686.rpm libusb-0.1.4-3.el7.x86_64.rpm test.tar[root@localhost ~]# tar -tf test.tar --查看归档里文件,解压归档使用xf

有些时候文件归档了还需要压缩

归档压缩的两种方式

(1)先归档,然后根据使用哪种压缩方式gzip,bizp2,xz 自己选择压缩方式

[root@localhost ~]# tar -cf rpm.tar *.rpm[root@localhost ~]# ls mailcap-2.1.41-2.el7.noarch.rpm rpm.tar[root@localhost ~]# xz rpm.tar --对于归档的.tar包还可以使用gz,bzip2,xz再次压缩[root@localhost ~]# ls mailcap-2.1.41-2.el7.noarch.rpm rpm.tar.xz

(2)归档压缩一步到位,tar命令调用压缩命令。

使用-zcf,z表示直接调用gzip,即归档又压缩。使用-zxf先解压,后展开归档,filename.tar.gz

使用-jcf 调用bizp2 -jxf同理 filename.tar.bz2

使用-Jcf 调用xz -Jcf同理   filename.tar.xz

[root@localhost ~]# tar -Jcf rpm.tar.xz *.rpm --归档压缩[root@localhost ~]# ls mailcap-2.1.41-2.el7.noarch.rpm rpm.tar.xz[root@localhost ~]# rm -rf *.rpm --解压缩,展开归档[root@localhost ~]# tar -Jxf rpm.tar.xz[root@localhost ~]# lsanaconda-ks.cfg mailcap-2.1.41-2.el7.noarch.rpm rpm.tar.xz

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Go 函数 递归
下一篇:使用springboot的jar包能够以service方式启动
相关文章

 发表评论

暂时没有评论,来抢沙发吧~