Linux 下 zip、tar、tar.gz、tar.bz2 详解

压缩、解压缩是日常工作中常用的两个操作,对于 Windows 平台而言,最常用的格式是 zip 和 rar,国内大多数是用 rar,国外大多数是用 zip。

而对于类 Unix 平台而言,常用的格式是 tar 和 tar.gz,zip 比较少一些,rar 则几乎没有。

ZIP 格式
zip 格式是开放且免费的,所以广泛使用在 Windows、Linux、MacOS 平台,要说 zip 有什么缺点的话,就是它的压缩率并不是很高,不如 rar及 tar.gz 等格式。

将文件或文件夹压缩为一个 zip 文档的命令如下:

 代码如下 复制代码
zip -r archive_name.zip file_to_compress
zip -r archive_name.zip directory_to_compress/

解压 zip 文档的命令如下:

unzip archive_name.zip
TAR 格式
严格的说,tar 只是一种打包格式,并不对文件进行压缩,主要是为了便于文件的管理,所以打包后的文档大小一般远远大于 zip 和 tar.gz,但这种格式也有很明显的优点,例如打包速度非常快,打包时 CPU 占用率也很低,因为不需要压缩嘛。

将文件或文件夹打包为 tar 文档的命令如下:

 代码如下 复制代码
tar -cvf archive_name.tar file_to_compress
tar -cvf archive_name.tar directory_to_compress

解包一个 tar 文档的命令如下:

tar -xvf archive_name.tar
TAR.GZ
tar.gz 可以说是对于 tar 的一个补充,它会对文件进行压缩,且压缩率略优于 zip,而对于 CPU 的占用率却不怎么高。Linux 平台下的大多数开源软件或源代码都是采用这种格式。

将文件或文件夹打包压缩为 tar.gz 文档的命令如下:

 代码如下 复制代码
tar -zcvf archive_name.tar.gz file_to_compress
tar -zcvf archive_name.tar.gz directory_to_compress

解压一个 tar.gz 文档的命令如下:

 代码如下 复制代码
tar -zxvf archive_name.tar.gz

TAR.BZ2
相比以上几种格式,tar.gz2 拥有最高的压缩率,但是压缩的时候所需要的时间也最长,CPU 占用率也最高。将文件或文件夹压缩为 tar.bz2 的命令如下:

 代码如下 复制代码
tar -jcvf archive_name.tar.bz2 file_to_compress
tar -jcvf archive_name.tar.bz2 directory_to_compress

解压一个 tar.bz2 文件的命令是:

 代码如下 复制代码
tar -jxvf archive_name.tar.bz2

我将最新版的 WordPress 3.5.1 版本的文件夹分别用以上几种格式压缩后的文件大小分别为:

 代码如下 复制代码
[root@lichao files]# ls -l
total 27764
drwxr-xr-x 5 root root     4096 Jan 24 20:53 wordpress
-rw-r--r-- 1 root root 13250560 Apr 21 02:23 wordpress.tar
-rw-r--r-- 1 root root  4628845 Apr 21 02:27 wordpress.tar.bz2
-rw-r--r-- 1 root root  5012223 Apr 21 02:18 wordpress.tar.gz
-rw-r--r-- 1 root root  5468888 Apr 21 02:18 wordpress.zip

可以说以上几种类型的格式各有优缺点,你需要在压缩率、压缩和解压耗时及 CPU 占用率方面找到一个平衡点。我在此之前一直使用 zip 格式,因为它看起来命令简单容易记住,但是从今往后起可能会用 tar.gz 多一些。

时间: 2025-01-07 12:07:08

Linux 下 zip、tar、tar.gz、tar.bz2 详解的相关文章

Linux下MySQL安装配置 MySQL配置参数详解_Mysql

一.下载编译安装 #cd /usr/local/src/ #wget http://mysql.byungsoo.net/Downloads/MySQL-5.1/mysql-5.1.38.tar.gz #tar –xzvf mysql-5.1.38.tar.gz ../software/ #./configure --prefix=/usr/local/mysql //MySQL安装目录 --datadir=/mydata //数据库存放目录 --with-charset=utf8 //使用UT

linux下php 5.4.* 编译安装步骤详解

据说php5.4要比此前各版本的php快不少,所以有必要安装来测试一下(国内比较流行的一些php程序比如discuz等等对php5.4的支持貌似还不太友好,所以站长朋友们还是要慎重升级).下面是在64位centos6.1上面编译安装的笔记,仅供参考. 1.下载 wget http://cn.php.net/get/php-5.4.8.tar.gz/from/this/mirror wget http://pecl.php.net/get/memcache-2.2.7.tgz wget http:

LINUX下Oracle数据导入导出的方法详解_oracle

本文讲述了LINUX下Oracle数据导入导出的方法.分享给大家供大家参考,具体如下: 一. 导出工具 exp 1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移   它有三种模式: a.  用户模式: 导出用户所有对象以及对象中的数据: b.  表模式: 导出用户所有表或者指定的表: c.  整个数据库: 导出数据库中所有对象. 2. 导出工具exp交互式命令行方式的使用的例子: $ex

Linux下C++内存管理的指针传递详解

指针参数是如何传递内存的? 如果函数的参数是一个指针,不要指望用该指针去申请动态内存.示例7-4-1中,Test函数的语句 GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory(str, 100); // s

linux下ssh安装与scp命令使用详解_linux shell

ubuntu默认并没有安装ssh服务,可以通过如下命令进行: 复制代码 代码如下: yblin@yblin-desktop:~$ ssh localhost ssh: connect to host localhost port 22: Connection refused 如上所示则说明还没有安装ssh. 通过apt-get安装如下: 复制代码 代码如下: yblin@yblin-desktop:~$ sudo apt-get install openssh-server ssh默认端口是22

在Linux下创建分区和文件系统的方法详解

  在 Linux 中创建分区或新的文件系统通常意味着一件事:安装 Gnome Parted 分区编辑器(GParted).对于大多数 Linux 用户而言,这是唯一的办法.不过,你是否考虑过在终端创建这些分区和文件系统?当然可以!以下就是方法! 使用 CFdisk 创建一个基本的 Linux 分区 以下是如何在命令行中创建一个基本的 Linux 分区的正确方案.要做的第一件事就是先打开你的终端.若你已打开,你需要找到你想要创建分区的磁盘.这可以使用一个简单的命令来找到. 复制代码 代码如下:

Linux中zip压缩和unzip解压缩命令详解

这篇文章主要介绍了zip/unzip压缩解压缩命令的使用方法及参数的说明,需要的朋友可以参考下   1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2.把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3.把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zi

linux下history(历史)命令用法详解

 如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率.本文将通过实例的方式向你介绍 history 命令的15个用法. 1. 使用 HISTTIMEFORMAT 显示时间戳 当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身.如果你想要查看命令历史的时间戳,那么可以执行: # export HISTTIMEFORMAT='%F %T ' # history | more 1 2008-08-05 19:02:39 serv

nginx/linux下配置php+mysql环境具体方法详解

先我们要准备配置环境的文件 Nginx 下载地址: http://nginx.org/download/nginx-1.3.14.zip PHP 下载地址: http://windows.php.net/downloads/releases/php-5.2.17-nts-Win32-VC6-x86.zip MySQL 下载地址:http://www.mysql.com/downloads/installer/ 2.安装配置nginx: 解压nginx,修改配置文件:  代码如下 复制代码 ser

Linux下配置完整安全的DHCP服务器详解

DHCP是动态主机配置协议.这个协议用于向计算机自动提供IP地址,子网掩码和路由信息.网络管理员通常会分配某个范围的IP地址来分发给局域网上的客户机.当设备接入这个局域网时,它们会向 DHCP 服务器请求一个 IP 地址.然后DHCP服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有 IP 地址为止.已经分配的IP地址必须定时地延长借用期.这个延期的过程称作leasing,确保了当客户机设备在正常地释放IP地址之前突然从网络断开时被分配的地址可以归还给服务器.本文以Redhat Lin