目录
1.什么是压缩?
2.常用的压缩和解压缩的工具?
zip和unzip
gzip和gunzip
bzip2和bunzip2
xz和unxz
归档打包命令tar
3.各种压缩工具的用法和实例演示
1.zip和unzip
2.gzip 和gunzip
3. bzip2和bunzip2
4.xz和unxz
5.tar命令
1.什么是压缩?
2.常用的压缩和解压缩的工具?
-
zip和unzip
-
gzip和gunzip
-
bzip2和bunzip2
-
xz和unxz
-
归档打包命令tar
3.各种压缩工具的用法和实例演示
1.zip和unzip
- zip是一个使用广泛的压缩工具,经压缩后会产生一个以.zip结尾的压缩文件,zip是后缀命令可以自己随意命名。
-
zip -r etc.zip /etc (r参数表示递归处理,这个命令表示把/etc 下的所有文件及其子子目录进行压缩)
可以看出r是递归进行压缩的
-
zip b.zip /etc/* (打包目录,仅对/etc进行压缩不对子文件,目录压缩打包)
下图可以看出仅打包/etc下的但是不打包子目录文件
-
zip -d aaa.zip file05 (d参数表示删除压缩文件里面的文件)
-
zip -m aaa.zip anaconda-ks.cfg (-m 参数 表示向压缩文件aaa.zip中加入压缩后 anaconda-ks.cfg的文件)
-
zip /root/bbb ./* -x file04 (-x参数表示排除 压缩时除了那个文件,压缩剩余的)
-
zip -rv home.zip /home/ (-v 参数表示显示详细信息)
-
upzip ccc.zip -d 678 (-d 参数代表指定路径去解压)
-
unzip -v ccc.zip (显示压缩文件下有哪些内容但是不解压)
-
unzip -o ccc.zip -d 678 #直接覆盖(如果678中有相同的文件直接覆盖不交互提示)
-
unzip "*.zip" -d kkk( 解压所有.zip结尾的文件到指定目录) kkk是一个新建的目录
-
unzip -n ccc.zip -d 678 #不覆盖(如果678中有相同的文件不覆盖,)
-
zcat a.zip #查看压缩文件内容
2.gzip 和gunzip
-
gzip hanqiu/file01(可以对某个文件进行压缩)
-
gzip hanqiu/* (可以对单个文件进行压缩)
-
gzip -d hanqiu/* (可以对单个文件进行解压)
-
gzip -dv hanqiu/* (可以对单个文件进行解压,并显示详细信息)
-
gzip -v hanqiu/* (查看详细信息在压缩的情况下)
-
gzip -l hanqiu/* 在不解压的情况下查看压缩文件内容
-
gzip -r text(递归的压缩目录下的文件)
-
gzip -dr text(递归的解压缩目录下的文件)
-
gunzip file.zp (对压缩文件进行解压)
-
gunzip -r text (递归解压缩 和 gzip -dr text功能相同)
-
gunzip -c anaconda-ks.cfz.gz >111/file (定向解压缩)
3. bzip2和bunzip2
-
bzip2 anaconda-ks.cfg (不保留源文件进行压缩)
-
bzip2 -d anaconda-ks.cfg.bz2 #解压
-
bzip2 -dv file02.bz2 解压时显示详细信息
-
bzip2 -dv file02.bz2 测试解压如下图显示ok表示可以解压但实际没有解压
-
bzip2 -k file01.bz2 保留源文件压缩
-
bzip2 -kd file01.bz2 保留源文件解压
-
bzip2 -c passwd > passwd.bz2 #保留源文件压缩
-
bzip2 -cd file01.bz2 #打印文件中的内容
-
bzcat anaconda-ks.cfg.bz2 #查看
-
bzless anaconda-ks.cfg.bz2 查看
4.xz和unxz
xz anaconda-ks.cfg 压缩
xz -d anaconda-ks.cfg.xz 解压缩
xz -k anaconda-ks.cfg 保留源文件压缩
xzcat anaconda-ks.cfg.xz 查看压缩文件
5.tar命令
[root@admin ~]# tar -cf /usr/local/src/root.tar ./* #建立归档文件,文件名为root.tar
[root@admin ~]# tar -xf /usr/local/src/root.tar -C /opt/ #解散归档文件到/opt目录下 -C指明目标路径
[root@admin ~]# tar -tf /usr/local/src/root.tar #查看归档文件的详细信息。
[root@admin ~]# tar rf /usr/local/src/root.tar 123 #添加123到归档文件的末尾
[root@admin src]# tar uf /usr/local/src/root.tar ./* #更新 当打包的文件改动时可以通过此命令更新
[root@admin src]# tar -Af etc.tar root.tar #添加压缩文件到etc.tar
[root@admin ~]# tar cfz /usr/local/src/etc.tar.gz /etc (以gzip的属性进行打包压缩)
[root@admin ~]# tar czvf /usr/local/src/etc.tar.gz /etc (显示zip属性打包的详细信息)
[root@admin ~]# tar -cjvf /usr/local/src/etc.tar.bz /etc/(以bz2属性进行打包压缩并显示详细信息)
[root@admin ~]# tar -cJvf /usr/local/src/etc.tar.xz /etc/ (以xz属性进行打包压缩并显示详细信息)
压缩率: xz > bz > gz ;从上图可以看出压缩率关系
[root@admin ~]# tar -N 20200803 -cf /usr/local/src/123.tar ./* #只将较指定日期更新的文件保存到备份文件里
[root@admin ~]# tar czvf file1.tar.gz ./file* --remove-files #归档后删除原文件
[root@admin ~]# tar xf file1.tar.gz;rm -rf file1.tar.gz #解压后删除原文件
[root@admin ~]# tar -xf /usr/local/src/etc.tar.xz -C /opt/
[root@admin ~]# tar -xf /usr/local/src/etc.tar.gz -C /opt/
[root@admin ~]# tar -xf /usr/local/src/etc.tar.bz -C /opt/