TAR,GZIP, BZIP2, XZ tar.xz zip 7z汇总

2024-09-05 08:38
文章标签 zip 汇总 gzip tar 7z xz bzip2

本文主要是介绍TAR,GZIP, BZIP2, XZ tar.xz zip 7z汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

常用压缩解压命令:tar

常用格式:tar.bz2、tar.gz,均可用tar实现压缩和解压。

对rar、zip等不常用的压缩文件,打开后可直接用鼠标拖出,即可实现解压。如果想用命令,请参考以下。

 

/*******************************************************************************/

原文地址: http://hi.baidu.com/mudgao/blog/item/48746b3f8cd2d6d87c1e7139.html

此文只是大致看了一点,尚没有全部看完,发现其中也有一些错误,不过整个文章的内容还是不错的,先转过来,后续仔细看,然后再加工。

 

1.Tar仅仅只是一个打包工具,并不负责压缩

      Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩, 压缩是由gzip与bzip2来实现的。因此把*.tar*、.tar.gz、*.tar.bz2 放到一起来举例:

比如我们要把目录/home/www下的test目录打包压缩到当前目录

    tar zcvf test.tar test//仅打包,不压缩
    tar zcvf test.tar.gz test //打包后以gzip压缩
    tar jcvf test.tar.bz2 test // 打包后以bzip2压缩
    ll test.tar* // 对比压缩后文件大小
    -rw-r–r– 1 Lee mock 10240 01-18 17:05 test.tar
    -rw-r–r– 1 Lee mock 357 01-18 17:06 test.tar.bz2
    -rw-r–r– 1 Lee mock 327 01-18 17:05 test.tar.gz

如何解压缩包:

    tar xvf test.tar
    tar zxvf test.tar.gz
    tar zxvf test.tar.bz2

    选项:
    -c 建立新的归档文件
    -r 向归档文件末尾追加文件
    -x 从归档文件中解出文件
    -O 将文件解开到标准输出
    -v 处理过程中输出相关信息 //如果使用,解压和压缩过程中,会显示详细信息,不用则是静默化
    -f 对普通文件操作
    -z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
    -Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

上面测试中,每次要删除解压后的test文件后解压打其他目录,因为如果不定义解压后目录路径和名字则默认解压到当前目录并以把压缩包名称作为文件夹名字。如果要解压到其他目录(如:/var/tmp/find)则如下:

    tar zxvf test.tar.bz2 -C /var/tmp/find

注意:C要大写

关于tar.gz和tar.bz2压缩率的问题:

*.tar.gz 在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。也会被简写成tgz。

*.tar.bz2网上好的资料说这种压缩格式是压缩率最好的、它比前面的方式要占用更多的CPU与时间。但是经过上面的试验显示发现test.tar.gz的大小竟然比test.tar.bz2的更小

 2.Gzip的压缩速度是最快的!

        压缩gz格式速度最快,也是UNIX/BSD的常用格式,压缩bz2格式时间稍长一些,但似乎在好机器上还可以接受,xz格式的压缩效果确实不错,cvs.tar是打包的全部OpenBSD CVS库,原本大小有5G多,经过xz压缩后只有700多M,不得不说压缩算法确实强悍,不过压缩时间太长——在我的1300MHz主频的老机器上,将 5G多的cvs打包文件压缩成xz格式用了两个小时左右,看来这种格式最好不作为日常采用的格式,但是如果作为放在服务器上供长期、大量下载的资源,使用这种压缩格式来进行压缩和解压尚可理解。

很多情况下,bzip2压缩率并不比gz高,但一般情况下,它花的时间却远远大于gz;

 

# ls -la
total 14202000
drwxr-xr-x   3 root  wheel         512 Mar 25 21:18 .
drwxr-xr-x  15 root  wheel         512 Mar 25 16:35 ..
drwxr-xr-x  10 root  wheel         512 Mar 25 17:49 cvs
-rw-r--r--   1 root  wheel         387 Mar 25 16:40 cvs-supfile
-rw-r--r--   1 root  wheel  5208381440 Mar 25 21:18 cvs.tar
-rw-r--r--   1 root  wheel   898476333 Mar 25 21:03 cvs.tar.bz2
-rw-r--r--   1 root  wheel  1162675369 Mar 25 21:13 cvs.tar.gz
# xz -z cvs.tar
# ls -la
total 5467600
drwxr-xr-x   3 root  wheel         512 Mar 25 22:32 .
drwxr-xr-x  15 root  wheel         512 Mar 25 16:35 ..
drwxr-xr-x  10 root  wheel         512 Mar 25 17:49 cvs
-rw-r--r--   1 root  wheel         387 Mar 25 16:40 cvs-supfile
-rw-r--r--   1 root  wheel   898476333 Mar 25 21:03 cvs.tar.bz2
-rw-r--r--   1 root  wheel  1162675369 Mar 25 21:13 cvs.tar.gz

-rw-r--r--   1 root  wheel   737463196 Mar 25 21:18 cvs.tar.xz

 

3.Linux下.bz2与.gz文件的区别

.bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。

  .bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一个文件,压缩后,.bz2文件比.gz文件更小,但是.bz2文件的小是以花费更多的时间为代价的。

  压缩实例:对一个599M的文件夹workspace进行压缩

  bz2文件

  time tar -jcvf j.tar.bz2 workspace/

  340M 56.8%

  real 13m20.975s

  user 11m13.872s

  sys 0m5.985s

  gz文件

  time tar -zcvf z.tar.gz workspace/

  348M 58.1%

  real 2m10.305s

  user 0m54.228s

  sys 0m7.399s

  总结:压缩后,.bz2文件只比.gz文件小了8M,但却花费了后者6倍多的时间。当然,压缩的比率,时间跟被压缩文件的格式,大小等因素有关。所以,本例不能说明使用gz比使用bz2更划算,但至少可以证明bz2比gz压缩率更高,gz比bz2花费更少的时间。 

 

4.继续測試一下 gzip, bzip 與 xz

http://blog.s10g.tw/2011/03/01/compare-of-gzip-bzip2-xz/

 

被壓縮檔是 ubuntu-10.10-desktop-i386.iso,大小為694MB(726827008 bytes)。

第一次測試,單純測試時間,指定參數全部相同為‘-c ubuntu-10.10-desktop-i386.iso > /dev/null’。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
======== GZIP ========
real    0m44.138s
user    0m42.300s
sys 0m0.576s
======== BZIP2 ========
real    4m55.145s
user    4m53.074s
sys 0m0.750s
======== XZ ========
real     7m53.939s
user    7m51.902s
sys 0m1.436s

第二次測試,主要紀錄壓縮檔大小,指定參數均為‘-c ubuntu-10.10-desktop-i386.iso > u1010.iso.gz’

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
======== GZIP ========
real    0m44.551s
user    0m42.279s
sys 0m1.303s
684M(716987381 bytes) u1010.iso.gz
======== BZIP2 ========
real    4m52.963s
user    4m50.558s
sys 0m1.704s
689M(721999239 bytes) u1010.iso.bz2
======== XZ ========
real    8m3.213s
user    7m57.394s
sys 0m2.654s
679M(711776308 bytes) u1010.iso.xz

測試的script

第一次:

1
2
3
4
5
6
7
#!/bin/sh
echo======== GZIP ========
timegzip-c ubuntu-10.10-desktop-i386.iso > /dev/null
echo======== BZIP2 ========
timebzip2-c ubuntu-10.10-desktop-i386.iso > /dev/null
echo======== XZ ========
timexz -c ubuntu-10.10-desktop-i386.iso > /dev/null

第二次:

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
echo======== GZIP ========
timegzip-c ubuntu-10.10-desktop-i386.iso > u1010.iso.gz
ls-sh u1010.iso.gz
echo======== BZIP2 ========
timebzip2-c ubuntu-10.10-desktop-i386.iso > u1010.iso.bz2
ls-sh u1010.iso.bz2
echo======== XZ ========
timexz -c ubuntu-10.10-desktop-i386.iso > u1010.iso.xz
ls-sh u1010.iso.xz

 

显而易见,GNU本家的东西一定都是最好的。


/*******************************************************************************/

XZ压缩最新压缩率之王

xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具。

之前xz使用一直很少,所以几乎没有什么提起。

我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣。

最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些东西就使用xz压缩。不过xz也有一个坏处就是压缩时间比较长,比7z压缩时间还长一些。不过压缩是一次性的,所以可以忽略。

xz压缩文件方法或命令

xz -z 要压缩的文件

如果要保留被压缩的文件加上参数 -k ,如果要设置压缩率加入参数 -0 到 -9调节压缩率。如果不设置,默认压缩等级是6.

xz解压文件方法或命令

xz -d 要解压的文件

同样使用 -k 参数来保留被解压缩的文件。

创建或解压tar.xz文件的方法

习惯了 tar czvf 或 tar xzvf 的人可能碰到 tar.xz也会想用单一命令搞定解压或压缩。其实不行 tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。

创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz

解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。

原文地址:http://blog.csdn.net/rheostat/article/details/7614451

/*******************************************************************************/

linux zip命令

zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.

2.unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

3.其他
zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件
zip -m myfile.zip ./rpm_info.txt
向压缩文件中myfile.zip中添加rpm_info.txt文件
-------------------------------------------------------------------------------

要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:

zip -r filename.zip filesdir
 

在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。

要抽取 zip 文件的内容,键入以下命令:

unzip filename.zip
 

你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

zip -r filename.zip file1 file2 file3 /usr/work/school
 

上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。


/*******************************************************************************/

2)对于.7z

支持 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 压缩文件格式

安装: sudo apt-get install p7zip p7zip-full p7zip-rar

# 7z a yajiu.7z yajiu.jpg yajiu.png
这条命令是将yajiu.jpg和yajiu.png压缩成一个7z包
# 7z a yajiu.7z *.jpg
这条命令是将所有.jpg的文件压缩成一个7z包
# 7z a yajiu.7z yajiu
这条命令是将文件夹yajiu压缩成一个7z包
# 7z e yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,e是解压到当前路径
# 7z x yajiu.7z
这条命令是将yajiu.7z中的所有文件解压出来,x是解压到压缩包命名的目录下

yajiu@yajiu-desktop:~$ cd 图片
yajiu@yajiu-desktop:~/图片$ 7z a yajiu.7z yajiu.jpg yajiu.png

7-Zip (A) 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning

Creating archive yajiu.7z

Compressing yajiu.jpg     
Compressing yajiu.png     

Everything is Ok
yajiu@yajiu-desktop:~/图片$ 7z a yajiu.7z *.jpg

7-Zip (A) 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning

Creating archive yajiu.7z

Compressing 1.jpg     
Compressing 2.jpg     

Everything is Ok
yajiu@yajiu-desktop:~/图片$ 7z a yajiu.7z yajiu

7-Zip (A) 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
Scanning

Creating archive yajiu.7z

Compressing yajiu/yajiu.7z     
Compressing yajiu/yajiu.rar     
Compressing yajiu/yajiu.zip     
Compressing yajiu/yajiu.jpg     
Compressing yajiu/yajiu.png     

Everything is Ok
yajiu@yajiu-desktop:~/图片$ 7z x yajiu.7z

7-Zip 4.58 beta Copyright (c) 1999-2008 Igor Pavlov 2008-05-05
p7zip Version 4.58 (locale=zh_CN.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Processing archive: yajiu.7z

file 1.jpg
already exists. Overwrite with
1.jpg?
(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename / (Q)uit? Y
Extracting 1.jpg
file 2.jpg
already exists. Overwrite with
2.jpg?
(Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename / (Q)uit? Y
Extracting 2.jpg

Everything is Ok

Files: 2
Size:       112564
Compressed: 96228
yajiu@yajiu-desktop:~/图片$

原文链接:http://hi.baidu.com/zgyz/blog/item/f7ef29085c90d4d663d98665.html




这篇关于TAR,GZIP, BZIP2, XZ tar.xz zip 7z汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138471

相关文章

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

IEEE会议投稿资料汇总http://cadcg2015.nwpu.edu.cn/index.htm

最近投了篇IEEE的顶级会议文章,一下是比较有用的一些资料,以供参考。 1.会议主页:http://cadcg2015.nwpu.edu.cn/index.htm     (The 14th International Conference on Computer-Aided Design and Computer Graphics (CAD/Graphics 2015)) 2.I

App Store最低版本要求汇总

1,自此日期起: 2024 年 4 月 29 日 自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。将 iOS App 提交至 App Store - Apple Developer 2,最低XCode版本 Xcod

C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc

文章目录 1、fatal error : sw/redis++/redis.h2、fatal error: dwarf.h: No such file or directory3、fatal error: elfutils/libdw.h: No such file or directory4、fatal error: libunwind.h: No such file or directo

[JAVA基础知识汇总-1] 创建线程的几种方式

文章目录 1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池 可以认为有四种方式,也可以认为有一种,因为都跟Runnable接口有关 1. 继承Thread类 代码 public class Thread1ExtendsThread extends Thread {// public Thread1(String n

RK3288 资源汇总

用了一段时间的RK3288做开发,现汇总一下网上的学习资源: 1、九鼎创展: 源代码仓库:https://gitlab.com/9tripod/x3288_linux_new 百度云文档资料: 链接:http://pan.baidu.com/s/1qYcsAaK    密码:wmvi 更多可查看九鼎创展社区:http://bbs.9tripod.com/forum.php?mod=fo

Android开发中遇到的各类问题汇总

Q1: Error:The number of method references in a .dex file cannot exceed 64K.Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html 应用中的Dex 文件方法数超过了最大值65536的上限

linux下zip加密压缩文件

zip -q -r  -P password zipfile.zip sourcefiles.txt                            #password 是加密密码 zipfile.zip 是生成的压缩文件 sourcefiles.txt 是被压缩的文件   zip [参数] <压缩包> <源文件>   使用zip格式打包文件     -r 递归,将指定目