linux下的打包与压缩

linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tarbzip2xz gzip等,我们来说说它们的用法。

先来说bzip2bunzip2bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者.tbz2结尾。

bzip2命令的用法:

bzip2 [选项] [文件]

常用选项:

bzip2 -d        解压缩文件
bzip2 -c        将压缩或解压缩的结果送到标准输出
bzip2 -f        使用此选项,在解压缩文件时,若输出文件与现有文件同名,则覆盖同名的文件
bzip2 -k        在压缩或解压缩文件之后,保留原始文件
bzip2 -s        解压或压缩文件时,降低内存使用量
bzip2 -t        测试文件的完整性
bzip2 -v        压缩或解压缩文件时,显示具体过程
bzip2 -z        强制压缩一个文件
bzip2 -#        指定压缩比率

xz同样也是linux下出色的压缩工具,lunxz,xzcat,lzma,unlzma,lzcat命令可以由xz命令调用指定的选项来执行,因此只介绍xz命令的用法。xz命令生成的文件通常以.xz或者.lzma格式结尾。

xz命令的用法:

xz [选项] [文件]

常用选项有:

xz -z           压缩一个文件
xz -d           解压缩文件
xz -t           测试文件的完整性
xz -l           查看一个压缩文件的信息
xz -k           压缩完文件后不删除原始文件
xz -f           使用此选项时,若目标文件存在,则删除原始文件,再解压
xz -c           将执行命令的结果输出到标准输出
xz -F           指定压缩或解压缩文件的格式
xz -#           指定压缩文件时的压缩比率

linux上还有一个常用的解压工具,就是gzip了。同linux下其它工具一样,gunzip,zcat也可以由gzip指定的选项来执行,因此只介绍gzip命令的用法。用gzip命令创建的文件通常以.gz,.tar.gz,.tar.Z或者.tgz结尾。

gzip命令的用法:

gzip [选项] [文件]

常用选项有:

gzip -c            将命令的执行结果输出到标准输出
gzip -d            解压缩文件
gzip -f            使用此选项时,若目标文件存在,则删除原始文件,再解压
gzip -l            列出这个压缩文件的具体信息
gzip -n            解压缩文件时,忽略文件中原来的时间戳
gzip -N            解压缩文件时,保留文件中原始的时间戳
gzip -r            将指定目录下的所有文件及子目录一起压缩
gzip -t            测试文件的完整性        
gzip -v            显示压缩或解压缩的具体过程
gzip -#            指定压缩比率

再来说说tar这个非常强大的工具吧。 tar最初是为了做磁带备份而设计的,它的作用是把文件和目录备份到磁带中,然后再从磁带中提取或恢复文件。现在可以使用tar命令来备份数据到任何存储介质上。tar是文件级备份,不必考虑底层文件系统类别,并且支持增量备份。tar命令创建的文件通常以.tar结尾,tar命令可以调用gzip,bz2或者xz工具来压缩或解压缩指定的文件.

tar命令的用法:

tar [选项] [文件]

常用选项有:

tar -z          压缩或解压缩一个文件
tar -x          从file.tar压缩包中提取所有文件
tar -A          追加一个压缩包到一个档案内
tar -c          创建了个压缩档案
tar -d          比较一个压缩档案和被压缩文件的区别
tar -r          追加文件到指定的压缩包中
tar -t          测试文件的完整性
tar -u          增量备份文件,只备份比压缩包中已经备份文件新的文件
tar -x          从一个压缩包中提取出文件
tar -C          解压缩文件到指定的目录
tar -f          指定要压缩或解压缩的文件
tar -j          调用bzip2来压缩或解压缩文件
tar -J          调用xz来压缩或解压缩文件
tar -p          解压缩文件时保留原始文件的权限
tar -v          显示压缩或解压缩的过程
tar -z          调用gzip来压缩或解压缩文件
tar -P          保留原始文件的绝对路径,解压时自动解压到绝对路径下
tar --exclude   打包目录时,不打包指定的文件

工具的用法都已经说完了,现在来看看实际工作中的用法。

例1:把系统中的/etc目录备份到/home目录下备份后的文件名为etc.backup的文件, 可以使用

#tar -jcvf etc.backup.tar.bz2 /etc

来把/etc/目录打包备份成结尾为tar.bz2的压缩包,也可以使用

#tar -zcvf etc.backup.tar.gz /etc

来把/etc/目录打包备份成结尾为tar.gz的压缩包,还可以使用

#tar -Jcvf etc.backup.tar.xz /etc

来把/etc/目录打包备份成结尾为tar.xz的压缩包

    [root@localhost ~]# tar -jcvf /home/etc_backup.tar.xz /etc
    /etc/
    /etc/pm/
    /etc/pm/power.d/
    /etc/pm/sleep.d/
    /etc/pm/config.d/
    /etc/libuser.conf
    /etc/security/
    /etc/security/namespace.d/
    ...

    [root@localhost ~]# ls -lah /home
    total 8.0M
    -rw-r--r--   1 root root 8.0M Apr 16 12:18 etc_backup.tar.xz

同样的,已经我们会看到各种格式的压缩文件,这时候我们可以使用tar xf filename.tar来解压这个压缩包。

例2:我们在某个目录下有个Python-2.7.9.tar.xzpip-1.4.1.tar.gz的文件,我们可以使用如下命令来解压这两个压缩包。

    [root@localhost ~]# tar xf Python-2.7.9.tar.xz
    [root@localhost ~]# tar xf pip-1.4.1.tar.gz 
    [root@localhost ~]# ls -Alh
    total 13M
    drwxr-xr-x  17 1000  1000 4.0K Dec 11  2014 Python-2.7.9
    -rw-r--r--   1 root root   12M Apr 16 12:24 Python-2.7.9.tar.xz
    drwxr-xr-x   5  501 games 4.0K Aug  8  2013 pip-1.4.1
    -rw-r--r--   1 root root  435K Apr 16 12:24 pip-1.4.1.tar.gz

我们可以看到,tar没有指定使用哪个工具来解压这两个不同格式的压缩包,这两个压缩包也已经被成功解压了。实际上,tar命令会根据后面所接的压缩包的格式自动调用解压工具,这样以后再看到不同格式的压缩文件,我们就可以使用tar xf tar_file这个命令来解压压缩包了,so easy吧!!!

祝大家工作学习愉快!!

原创文章,作者:renpingsheng,如若转载,请注明出处:http://www.178linux.com/73502

(1)
renpingshengrenpingsheng
上一篇 2017-04-16
下一篇 2017-04-16

相关推荐

  • 马哥教育21期网络班—第12周课程+练习—-LAMP练习

    1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求 (2) 接收请求: 接收来自于网络的请求报文中对某资源的一次请求的过程; 持久连接:接收到请求不会断开这个请求 非持久连接:一个连接请求断开一次 并发访问响应模型(Web I/O): 单进程I/O结构:启动一个进程处理用户请求,而且一次只处理…

    Linux干货 2016-09-26
  • M22 使用光盘修复Centos实验初探

    实验目的: 服务器由于文件丢失等原因造成无法启动,可以使用光盘引导启动服务器,然后对服务器进行修复。 实验环境: VMware12安装Centos6.8虚拟机 Centos6.8的光盘镜像 实验原理: 手动删除虚拟机上的rpm程序文件,使用光盘镜像恢复安装rpm程序。 实验过程: 1、     执行命令删除rpm程序,…

    2017-03-06
  • Linux中实现java和c语言打印Hello world小程序

    1、C语言实现 先确认linux系统中是否gcc编译器,可以通过rpm -q gcc查询系统已经安装gcc软件包,如果没有安装可以到系统自带光盘里面安装相应的安装包软件。 使用rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm安装编译器,安装后再查询确认已经成功 环境准备好了,我们就可以编写C语言的代码了,我们可以使用vim编辑器编写第一…

    Linux干货 2016-08-26
  • 网卡别名的设置

    网卡别名的设置 设备网卡别名对虚拟主机的作用 可以将多个IP地址绑定到一个NIC上 eth0:1 eth0:2 eth0:3 ifconfig命令: 使用ipconfig命令来设置网卡别名 ifconfigeth0:0 192.168.1.100/24 up 使用ip命令来设置网卡别名 ipaddradd 172.16.1.2/…

    Linux干货 2016-09-06
  • ThridWeek_FirstDay

    python学习笔记整理

    Linux干货 2017-10-09

评论列表(1条)

  • renjin
    renjin 2017-04-21 11:45

    文章针对 linux下的打包与压缩进行了详细的说明,内容总结的很详细,排版也很好。