一、Linux系统常见压缩包格式
1、常见的压缩格式有 .zip 、.rar 、.tar 、.gz 、.bz2 等。不同的压缩格式需要用不同的压缩命令和工具来处理。
2、在Linux系统中 .tar 为标准格式的压缩和解压缩格式,用系统中自带的命令 tar 来处理,不需要另外安装命令
3、Linux系统要与其它系统交换文件,所以也需要处理一些windows系统中的压缩文件,比如我们很熟悉的zip的rar格式的文件,但是,可能需要另外安装工具。
把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输非常有用。 |
打包和压缩的概念● 打包是指将一大堆文件或目录变成一个文件 ● 压缩则是将一个大的文件变成一个小文件 在Linux中有的工具只打包不压缩,有的工具只压缩,不负责打包,也有打包压缩一条龙服务的,这就使得问题变得复杂,你得小心分辨。 选择工具要兼顾速度与效率,有时候,甚至可以先用一个工具打包,再用一个工具压缩。 有一些压缩工具只能对一个单一的文件进行压缩,你得先将一大堆文件打包成一个(tar命令),再用压缩程序进行压缩(gzip 或者 bzip2命令) |
".tar " 格式(打包不会压缩)".gz" 格式(不能打包,只压缩)".bz2" 格式(不能压缩目录)".tar.gz" 和 ".tar.bz2" 格式(打包压缩) |
二、常用命令
(一)tar命令
tar命令可以用于打包和解开打包文件,它是Linux系统自带的命令,不需要另外安装。
它不压缩文件
tar命令常用选项如下:
-c 或 --create:建立新的打包备份文件
-x 或 --extract 或 --get:从备份文件中还原文件
-v 或 --verbose:显示压缩、解压缩详细过程
-z 或 --gzip 或 --ungzip:通过gzip指令处理备份文件
-f :指定文件名,不论是压缩还是解压缩都要携带该选项
-j 指定要解压的文件是.tar.bz2类型的文件,当解压.tar.bz2的压缩包时必须携带该选项
-C 表示指定压缩或解压缩后放置的目录,如果没有此参数则默认为当前目录
-t 或 --list:列出备份文件的内容
在这里,要特别注意的是,tar命令是Linux中少数几个命令参数前不需要加短杠的命令。
tar命令使用示例:
1. 打包文件
只打包不压缩
把 /home 下面的所有文件打包, 命令为:
tar -cvf home /home
先说选项 -cvf
就是c 创建一个新的打包文件,v 显示创建过程,f 指定创建后的包文件名
这里的打包后的文件名是 home
要打包的源文件是目录 /home 中的所有文件
含义就是:把根目录下的home目录中的所有文件打包成一个文件 home
那最后打包成的文件home放到哪里的呢?其实是放在你的当前目录中
我们不得不说,上面对打包后的文件命名是不好的,因为我们看不出它是一个包文件,正确的方法是命名成home.tar,再来做一次:
tar -cvf home.tar /home
再查看,如上图,出现home.tar ,与home文件大小一样。
2. 还原包文件
只需要把选项中的 -c 换成 -x
tar -xvf home.tar
上面的命令是把 home.tar 包文件还原成原来的 home 目录,目录会放在哪里呢?还是在当前目录下,不过刚才我们刚好有一个文件也弄成了home,不允许一个目录与文件同名,它自动删除了那个文件,再把home目录放上。可以,ll home 查看是不是与根目录下那个相同呢?
如果你要指定把还原出来的home目录,放到指定的位置,可以在后面加上:
-C 指定的目录
比如:
tar -xvf home.tar -C /root/test #指定还原到 /root/test 中去
注意,-C 是大写字母
3. 查看包内的文件
tar -tf home.tar
这个是不还原,只是测试 test
(二)压缩成 .gzp 和 .bz2 格式的文件
前面的tat命令没有对文件home.tar压缩,可以用gzip 或者 bzip2命令进一步压缩它,缩小文件体积
如果没有安装,必须先安装gzip 和 bzip2,安装命令:
yum install -y gzip
yum install -y bzip2
1. gzip
gzip home.tar
原来的home.tar文件不见了,变成了home.tar.gz体积变小了。
要还原成压缩前的文件 home.tar 用下面的命令
gzip -d home.tar.gz
2. bzip2
如果执行下面的命令
bzip2 home.tar
原来的home.tar文件不见了,变成了home.tar.bz2体积变小了。
要还原成压缩前的文件 home.tar 用下面的命令
bzip2 -d home.tar.bz2
(三)打包压缩、还原解压一步到位
只打包一个文件,不压缩
tar -cvf home.tar /home
1. 打包并压缩一个文件(自动调用gzip压缩)
加 -z 选项
tar -zcvf home.tar.gz /home
2. 打包并压缩一个文件(自动调用bzip2压缩)
加 -j 选项
tar -jcvf home.tar.bz2 /home
3. 解压缩文件.tar.gz
tar -zxvf home.tar.gz
4. 解压缩文件.tar.gz
tar -jxvf home.tar.bz2
上面的选项中,-c 是创建打包文件 -x 是还原解压 只需要把选项中的 -c 换成 -x 就变成相反的操作 另外上面的选项中 -f 是指定文件名,是必不可少 -v 可以看到详细的过程 |
(四)zip和unzip命令
想要进行压缩和解压缩zip,则必须先安装压缩和解压zip的软件,执行命令如下所示:
yum install -y zip
yum install -y unzip
zip命令主要用于将文件和文件夹压缩成zip格式的压缩包,其常用参数如下:
-r 表示递归压缩,当压缩文件夹时加上-r参数表示连同文件夹下的子文件夹和文件一起压缩到压缩包内。
-v 表示压缩过程显示详细信息
-u 表示更新文件
-d 表示从压缩包中删除文件
将文件夹压缩成zip格式命令如下:
zip -rv home.zip /home
unzip命令主要用于解压zip格式的压缩包,其常用参数如下:
-d 指定解压后的目录
unzip解压命令如下:
unzip home.zip
unzip命令后面直接跟要解压缩的zip文件即可。
(五)unar
rar不是Linux系统默认支持的压缩格式,因此针对rar格式的压缩包,压缩和解压缩过程比较复杂,需要安装第三方软件。
安装unar之后可以解压缩rar格式的压缩包,安装该命令执行如下:
yum install -y unar
unar命令,其常用参数如下:
-p 表示携带密码压缩
-o 表示压缩到指定位置
简单解压rar压缩包命令:
unar test.rar
更多的综合举例: |
打包多个文件,不压缩tar -cvf nczy.tar 1.txt 2.txt 3.txt 打包并压缩一个文件(使用gzip压缩)tar -zcvf nczy.tar.gz nczy.txt 打包并压缩一个文件(使用bzip2压缩)tar -jcvf nczy.tar.bz2 nczy.txt 在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。 列出打包压缩文件里面的内容tar -ztvf nczy.tar.gz 由于我们使用gzip压缩的nczy.tar.gz,所以要查阅nczy.tar.gz包内的文件时,就得要加上z这个选项了 tar.gz解压缩tar -xzvf nczy.tar.gz tar.gz解压缩到/tmp目录tar -xzvf nczy.tar.gz -C /tmp 只解压nczy.tar.gz里面的1.txt 和 2.txttar -zxvf nczy.tar.gz 1.txt 2.txt 压缩文件并保留其权限tar -zcpvf nczy.tar.gz 1.txt 2.txt 3.txt 4.txt 这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。 在/etc当中,比2021/01/01新的文件才备份tar -N "2021/01/01" -zcvf etc.tar.gz /etc bzip2 压缩,查看,解压● 压 缩:tar -jcvf nczy.tar.bz2 nczy ● 查 询:tar -jtvf nczy.tar.bz2 ● 解压缩:tar -jxvf nczy.tar.bz2 -C test |