打包压缩、解压缩工具详解

本文旨在学习打包,压缩,解压缩。学习使用tar、gzip/gunzip/zcat、bzip2/bunzip2/bzcat、xz/unxz/xzcat、zip/unzip、cpio等命令的使用。

前言:



首先要弄清两个概念:打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)

tar命令详解



语法:tar[选项][参数]

常用选项:

-z或--gzip或--ungzip:通过gzip指令处理备份文件;

-j:通过bzip2指令处理备份文件;

-c或--create:建立新的备份文件;

-v:显示操作过程;

-f<备份文件>或--file=<备份文件>:指定备份文件;

-x或--extract或--get:从备份文件中还原文件;解压缩

-t或--list:列出备份文件的内容

-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项

--exclude=<范本样式>:排除符合范本样式的文件。

通过bzip2令处理备份文件

打包: tar -cf  log.tar access.log error.log (要打包的文件)

压缩: tar -jcvf log.tar.bz2 log.tar

打包后压缩: tar -jcvf log.tar.bz2  access.log error.log(要压缩的文件)

查询文件内容: tar -tf log.tar.bz2

解压缩: tar -jxvf log.tar.bz2 -C /backup/  (欲解压缩的目录)

通过gzip指令处理备份文件

压 缩:tar -zcvf log.tar.gz 要被压缩的文件或目录名称

查 询:tar -ztvf log.tar.gz

解压缩:tar -zxvf log.tar.gz -C 欲解压缩的目录

实例:

tar -zcvf etc.tar.gz /etc/*

tar -zcvf etc.tar.gz --exclud=/etc/services /etc/*

tar -zxvf etc.tar.gz -C /tmp/etcbak

gzip/gunzip/zcat命令



gzip常用选项:

-c: 将压缩或解压缩的结果输出至标准输出

-d: 解压缩,相当于gunzip

-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;

-#:1-9,指定压缩比,值越大压缩比越大

压缩tar打包的文件:

gzip -r log.tar 压缩后的文件名为log.tar.gz

压缩1: gzip access.log (压缩完后,源文件消失)

压缩2: gzip -c access.log >access.log.gz (压缩后保留源文件)

解压1:gzip -d access.gz (解压后,压缩包消失)

解压2:gzip -c -d access.log.gz >access.log(解压后保留压缩包)

解压3:gunzip access.gz

zcat命令用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。

具体使用请google

zcat access.log.gz >access.log


bzip2/bunzip2/bzcat命令



bzip2 [OPTION]... FILE ...

-k: keep,  保留原文件

-d:解压缩

-#:1-9 ,压缩比,默认为6

bzcat :不显式解压缩的前提下查看文本文件内容;

xz/unxz/xzcat命令



xz是一种新的压缩文件格式,号称压缩率之王。采用LZMA SDK压缩,目标文件较gzip压缩文件(.gz或.tgz)小30%,较2小15%。

xz [OPTION]... FILE ...

-k: keep,  保留原文件;

-d:解压缩

-#:1-9 ,压缩比,默认为6

xzcat:  不显式解压缩的前提下查看文本文件内容

zip/unzip命令



打包压缩:zip filename.zip filename

解压缩:unzip filename.zip

cpio 命令



cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。它可以解压以“.cpio” “.tar” 结尾的文件。

cpio语法:

cpio [option] > 文件名或者设备名

cpio [option] < 文件名或者设备名

常用option:

-o或--create:执行copy-out模式,建立备份档;

-i或--extract:执行copy-in模式,还原备份档;

-t或--list:将输入的内容呈现出来;

-u或:置换所有文件,不论日期时间的新旧与否,皆不予询问而直接覆盖;

-v或--verbose:详细显示指令的执行过程;

-d或--make-directories:如有需要cpio会自行建立目录;

-c:一种较新的存储方式

-B: 将输入/输出的区块大小改成5210Bytes;

实例:

    [[email protected] tmp]# ls  access.log error.log |cpio -ocvB >log.cpio
    access.log
    error.log
    2 blocks

将/etc下的所有普通文件都备份到/opt/etc.cpio

    find /etc –type f | cpio –ocvB >/opt/etc.cpio
    find /etc –type f | cpio –ov >/opt/etc.cpio

内容预览:

cpio -tv < etc.cpio

解压缩:

cpio -iv < etc.cpio

cpio -ivd < etc.cpio

rpmcpio命令:

rpm2cpio命令用于将rpm软件包转换为cpio格式的文件

rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -idv

时间: 2024-10-08 07:56:25

打包压缩、解压缩工具详解的相关文章

Linux/centos/redhat下各种压缩解压缩方式详解

1.zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzip unzip -o -d /root/ myfile.zip 把myfile.zip文件解压到 /root/ -o:不提示的情况下覆盖文件: -d:-d /root 指明将文件解压缩到/root目录下: 3.其他 zip -d myfile.zip test.txt 删除压缩文件中test.txt文件 zip -m myf

Linux,unix,cygwin,centeros下的tar压缩解压缩命令详解

Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置.不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的.但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的.为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面. 我们把这

Linux下的压缩解压缩命令详解

zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -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文件z

Linux下的压缩解压缩命令详解及实例

实例:压缩当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ============================ 另:有些服务器没有安装zip包执行不了zip命令,但基本上都可以用tar命令的,实例如下: tar -zcvf /home/zdzlibs.tar.gz /home/zdz/java/zdzlibs/ ============================ linux zip命令 zip -

tar压缩解压缩命令详解

tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个. 下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf al

Linux下的tar压缩解压缩命令详解

tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的.-z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.t

Linux 压缩解压缩命令详解

tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.tar *.jp

Linux下tar压缩解压缩命令详解

tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.tar *.jp

linux压缩(解压缩)命令详解

linux打包压缩命令汇总 linux打包压缩命令汇总 tar命令 [[email protected] ~]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩.-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?-j :是否同时具