linux 下对zip,rar,tar,tar.gz,tar.bz2,tar.xz,gzip,bzip2,xz文件的归档,压缩和解压缩
一.关于打包和压缩
1.打包(打包又称为归档)是指将一大堆文件或目录变成一个总的文件,压缩则是将一个大的文件通过特定的压缩算法变成一个小文件。
2.归档和压缩文件的好处:方便管理,节约硬盘的资源,加快文件传输速度。
3.LINUX中常见的归档压缩文件后缀名(归档压缩格式):
| 归档压缩后缀名 | 格式描述 |
|---|---|
| .rar | 表示通过WinRAR压缩工具生成的文件 |
| .zip | 表示通过zip压缩工具生成的文件 |
| .gz | 表示通过gzip压缩工具生成的文件 |
| .bz2 | 表示通过bzip2压缩工具生成的文件 |
| .xz | 表示通过xz压缩工具生成的文件 |
| .tar | 表示通过tar打包程序打包生成的文件 |
| .tar.gz | 表示先由tar工具打包,然后由gzip工具进行压缩生成的文件 |
| .tar.bz2 | 表示先由tar工具打包,然后由bzip2工具进行压缩生成的文件 |
| .tar.xz | 表示先由tar工具打包,然后由xz工具进行压缩生成的文件 |
二.linux对rar文件的压缩和解压缩
1.rar格式是windows系统最常见的压缩格式,rar压缩文件可通过WinRAR压缩生成,RAR是一种专利文件格式,用于数据压缩与归档打
包,RAR通常情况比ZIP压缩比高,但压缩/解压缩速度较慢。一般linux都是通过tar打包文件,很少处理rar文件,但是难免会出现rar格式
的文件,我们要学会处理此类文件。
2.linux压缩和解压缩rar文件使用rarlinux程序,此程序需要使用源码编译安装(源码编译安装详情请查看https://www.cnblogs.com/renshengdezheli/p/13954234.html)。
3.rar压缩文件的语法为:rar a 压缩以后的文件名 需要压缩的文件/目录。
4.rar解压缩文件的语法为:rar x 压缩文件。
#linux压缩和解压缩rar文件使用rarlinux程序
[root@node5 ~]# wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
#解压缩文件
[root@node5 ~]# tar xf rarlinux-3.8.0.tar.gz
[root@node5 ~]# cd rar
#编译安装rarlinux
[root@node5 ~]# make -j 4 && make install
#centos编译安装rarlinux-3.8.0.tar.gz文件后,执行rar可能会出现“bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter:No such file or directory”这样的报错,需要安装以下两个依赖包
[root@node5 ~]# yum install glibc.i686
[root@node5 ~]# yum install libstdc++.so.6 -y
#rar压缩文件的语法为:rar a 压缩以后的文件名 需要压缩的文件/目录
[root@node5 ~]# rar a etc.rar /etc
[root@node5 ~]# ll etc.rar -h
-rw-r--r-- 1 root root 15M Nov 2 23:23 etc.rar
#rar解压缩文件的语法为:rar x 压缩文件
[root@node5 ~]# rar x etc.rar
[root@node5 ~]# ll -d etc
drwxr-xr-x 101 root root 8192 Nov 2 23:17 etc
#查看rar的命令帮助,直接输入rar即可
[root@node5 ~]# rar
RAR 3.80 Copyright (c) 1993-2008 Alexander Roshal 16 Sep 2008
Shareware version Type RAR -? for help
Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
<Commands>
a Add files to archive
c Add archive comment
cf Add files comment
ch Change archive parameters
cw Write archive comment to file
三.使用tar对文件进行归档,压缩,解压缩
1.tar命令用来对文件进行打包,压缩和解压缩。
2.tar命令的打包是把几个文件/目录集合在一个文件里,通过tar打包之后的文件,可以使用gzip,bzip2或xz等压缩工具进行压缩。
3.tar的语法格式为:tar [OPTION...] [FILE]...,tar命令的常用参数有:
- -c create创建文件
- -x -extract [ˈekstrækt] 提取 解压还原文件
- -v --verbose显示执行详细过程
- -f --file指定备份文件
- -t --list 列出压缩包中包括哪些文件,不解包,查看包中的内容
- -C (大写)--directory 指定解压位置
3.1 tar对文件进行归档和解压
只对文件进行归档不压缩
#对/boot目录打包
#tar的参数前可以不加“-”,tar -cvf boot.tar /boot等价于tar cvf boot.tar /boot
#在对文件进行打包的时候出现这么一句话“tar: Removing leading `/' from member names”,这是因为:在使用绝对路径名归档文件时,将默认从文件名中删除该路径中前面的 / 符号,这样解压时,会直接解压到当前目录。 如果不移除/压缩,当解包时,直接按绝对路径来释放文件,会覆盖原系统中此路径的文件。
[root@node5 ~]# tar -cvf boot.tar /boot
tar: Removing leading `/' from member names
/boot/
/boot/efi/
/boot/efi/EFI/
/boot/efi/EFI/centos/
/boot/grub2/
......
[root@node5 ~]# ll boot.tar -h
-rw-r--r-- 1 root root 92M Nov 3 10:57 boot.tar
#解压
[root@node5 ~]# tar -xvf boot.tar
[root@node5 ~]# ll -d boot
dr-xr-xr-x 5 root root 4096 Apr 26 2019 boot
#指定解压位置 -C
[root@node5 ~]# tar xf boot.tar -C /opt/
[root@node5 ~]# ll -d /opt/boot
dr-xr-xr-x 5 root root 4096 Apr 26 2019 /opt/boot
#把指定的文件和目录进行打包
[root@node5 ~]# tar cf guidan.tar 201810240430234009.pcm baidu.html iu.jpg wanyi.txt logqiege.sh stick
[root@node5 ~]# ll -h guidan.tar
-rw-r--r-- 1 root root 110K Nov 3 11:08 guidan.tar
#不进行解压,查看tar包里面的内容
[root@node5 ~]# tar tf guidan.tar
201810240430234009.pcm
baidu.html
iu.jpg
wanyi.txt
logqiege.sh
stick/
[root@node5 ~]# tar cf boot.tar /boot
tar: Removing leading `/' from member names
[root@node5 ~]# ll -h boot.tar
-rw-r--r-- 1 root root 92M Nov 3 11:22 boot.tar
#解压指定的文件,boot目录里存在initramfs-3.10.0-693.el7.x86_64.img文件,现在我们只想解压此文件,别的文件不解压
[root@node5 ~]# tar xf boot.tar boot/initramfs-3.10.0-693.el7.x86_64.img
[root@node5 ~]# ll boot/initramfs-3.10.0-693.el7.x86_64.img -h
-rw------- 1 root root 20M Apr 26 2019 boot/initramfs-3.10.0-693.el7.x86_64.img
3.2 归档的添加和删除
1.此步骤对已经打包的文件进行添加和删除,以及进行特定打包。
[root@node5 opt]# ls
apache-tomcat-8.0.51 boot.tar boot.tar.bz2 boot.tar.gz boot.tar.xz nginx sdb6_fulldump sdb6_incredump1 sdb6_incredump2 xfsdump_sdb6 xfsdump_shadow
#把指定的文件和目录进行打包
[root@node5 opt]# tar cf ceshi.tar sdb6_fulldump sdb6_incredump1 sdb6_incredump2 xfsdump_sdb6
#不进行解压,查看tar包里面的内容
[root@node5 opt]# tar tf ceshi.tar
sdb6_fulldump
sdb6_incredump1
sdb6_incredump2
xfsdump_sdb6
#-r:向压缩归档文件末尾追加文件
[root@node5 opt]# tar rf ceshi.tar xfsdump_shadow
[root@node5 opt]# tar tf ceshi.tar
sdb6_fulldump
sdb6_incredump1
sdb6_incredump2
xfsdump_sdb6
xfsdump_shadow
#向压缩归档文件删除指定文件
[root@node5 opt]# tar --delete -f ceshi.tar sdb6_fulldump
[root@node5 opt]# tar tf ceshi.tar
sdb6_incredump1
sdb6_incredump2
xfsdump_sdb6
xfsdump_shadow
#对/usr/local/nginx/conf目录进行打包,但是排除以default结尾和以types结尾的文件
[root@node5 opt]# tar cf nginx1.19.tar /usr/local/nginx/conf --exclude=/usr/local/nginx/conf/*.default --exclude=/usr/local/nginx/conf/*.types
tar: Removing leading `/' from member names
#查看tar包发现,没有以default结尾和以types结尾的文件
[root@node5 opt]# tar tf nginx1.19.tar
usr/local/nginx/conf/
usr/local/nginx/conf/koi-win
usr/local/nginx/conf/koi-utf
usr/local/nginx/conf/win-utf
usr/local/nginx/conf/fastcgi_params
usr/local/nginx/conf/fastcgi.conf
usr/local/nginx/conf/uwsgi_params
usr/local/nginx/conf/scgi_params
usr/local/nginx/conf/nginx.conf
3.3 tar对文件进行归档压缩和解压缩
1.此步骤不仅对文件进行归档,还进行相应的压缩。
2.tar进行压缩常用的参数:
- -z, --gzip 以gzip方式压缩 :tar zcvf newfile.tar.gz SOURCE ,扩展名: tar.gz
- -j : 以bz2方式压缩 :tar jcvf newfile.tar.bz2 SOURCE 扩展名:tar.bz2
- -J : 以xz 方式压缩 :tar Jcvf newfile.tar.xz SOURCE 扩展名:tar.xz
3.对/boot目录进行三种不同方式的压缩和解压缩,并对比压缩比率。
[root@node5 ~]# cd /opt/
[root@node5 opt]# pwd
/opt
[root@node5 opt]# ls
apache-tomcat-8.0.51 nginx sdb6_fulldump sdb6_incredump1 sdb6_incredump2 xfsdump_sdb6 xfsdump_shadow
#创建tar包
[root@node5 opt]# tar cf boot.tar /boot
tar: Removing leading `/' from member names
#创建tar.gz包
[root@node5 opt]# tar zcf boot.tar.gz /boot
tar: Removing leading `/' from member names
#解压缩tar.gz包
[root@node5 opt]# tar zxf boot.tar.gz
#创建tar.bz2包
[root@node5 opt]# tar jcf boot.tar.bz2 /boot
tar: Removing leading `/' from member names
#解压缩tar.bz2包
[root@node5 opt]# tar jxf boot.tar.bz2
#解压缩tar.bz2包到/home/elk/目录
[root@node5 opt]# tar jxf boot.tar.bz2 -C /home/elk/
[root@node5 opt]# ll /home/elk/boot -dh
dr-xr-xr-x 5 root root 4.0K Apr 26 2019 /home/elk/boot
#创建tar.xz包
[root@node5 opt]# tar Jcf boot.tar.xz /boot
tar: Removing leading `/' from member names
#解压缩tar.xz包
[root@node5 opt]# tar Jxf boot.tar.xz
#对比三个压缩文件,发现boot.tar.xz压缩比例最高,但是花费时间也最多
[root@node5 opt]# ll -h boot.tar*
-rw-r--r-- 1 root root 92M Nov 3 14:51 boot.tar
-rw-r--r-- 1 root root 84M Nov 3 14:54 boot.tar.bz2
-rw-r--r-- 1 root root 84M Nov 3 14:52 boot.tar.gz
-rw-r--r-- 1 root root 82M Nov 3 15:15 boot.tar.xz
四.linux对zip文件的压缩和解压缩
1.ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),zip格式的压缩文件在linux和
windows上都是很常见的,在linux中,zip是压缩程序,unzip是解压缩程序。
[root@node5 opt]# pwd
/opt
#将/usr/local/nginx/conf/目录下所有的conf文件压缩成一个zip包
[root@node5 opt]# zip conf.zip /usr/local/nginx/conf/*.conf
adding: usr/local/nginx/conf/fastcgi.conf (deflated 60%)
adding: usr/local/nginx/conf/nginx.conf (deflated 64%)
#压缩文件
[root@node5 opt]# zip shadow.zip /etc/shadow
adding: etc/shadow (deflated 43%)
#压缩目录
[root@node5 opt]# zip -r boot.zip /boot
#解压缩zip包
[root@node5 opt]# unzip conf.zip
Archive: conf.zip
inflating: usr/local/nginx/conf/fastcgi.conf
inflating: usr/local/nginx/conf/nginx.conf
[root@node5 opt]# ls usr/local/nginx/conf/
fastcgi.conf nginx.conf
#解压缩zip包到指定目录
[root@node5 opt]# unzip conf.zip -d /home/elk/
Archive: conf.zip
inflating: /home/elk/usr/local/nginx/conf/fastcgi.conf
inflating: /home/elk/usr/local/nginx/conf/nginx.conf
[root@node5 opt]# ls /home/elk/usr/local/nginx/conf/
fastcgi.conf nginx.conf
五.使用gzip,bzip2,xz压缩文件,解压文件,查看文件
[root@node5 opt]# ls
apache-tomcat-8.0.51 nginx sdb6_fulldump sdb6_incredump1 sdb6_incredump2 usr xfsdump_sdb6 xfsdump_shadow
#gzip压缩
[root@node5 opt]# gzip xfsdump_shadow
[root@node5 opt]# ls
apache-tomcat-8.0.51 nginx sdb6_fulldump sdb6_incredump1 sdb6_incredump2 usr xfsdump_sdb6 xfsdump_shadow.gz
#查看gzip压缩之后的文件
[root@node5 opt]# zcat xfsdump_shadow.gz
#解压gzip文件
[root@node5 opt]# gzip -d xfsdump_shadow.gz
#bzip2压缩
[root@node5 opt]# bzip2 xfsdump_sdb6
[root@node5 opt]# ls
apache-tomcat-8.0.51 nginx sdb6_fulldump sdb6_incredump1 sdb6_incredump2 usr xfsdump_sdb6.bz2 xfsdump_shadow.gz
#查看bzip2压缩之后的文件
[root@node5 opt]# bzcat xfsdump_sdb6.bz2
#解压bzip2文件
[root@node5 opt]# bzip2 -d xfsdump_sdb6.bz2
#xz压缩
[root@node5 opt]# xz sdb6_incredump2
[root@node5 opt]# ls
apache-tomcat-8.0.51 nginx sdb6_fulldump sdb6_incredump1 sdb6_incredump2.xz usr xfsdump_sdb6.bz2 xfsdump_shadow.gz
#查看xz压缩之后的文件
[root@node5 opt]# xzcat sdb6_incredump2.xz
#解压xz文件
[root@node5 opt]# xz -d sdb6_incredump2.xz
linux 下对zip,rar,tar,tar.gz,tar.bz2,tar.xz,gzip,bzip2,xz文件的归档,压缩和解压缩的更多相关文章
- Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)
1.压缩和解压缩命令 常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令 zip 压缩文件名 源文件:压缩文件 ...
- centos 文档的压缩和打包 gzip,bzip2,xz,zip,unzip,tar,tgz 第九节课
centos 文档的压缩和打包 gzip,bzip2,xz,zip,unzip,tar,tgz 第九节课 SAS盘可以支持热插拔,看机器 tar.zip.tar -czvf 不会动源文件,gz ...
- Linux下的压缩和解压缩命令——gzip/gunzip
gzip命令 gzip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处".gz"扩展名. gzip是在Linux系统中经常使用的一个对文件进行压 ...
- Linux下的压缩和解压缩命令gzip/gunzip
作者:邓聪聪 Linux下的压缩和解压缩命令——gzip/gunzip yum -y install zip gzip (--安装压缩工具) gzip命令 gzip命令用来压缩文件.gzip是个使用广 ...
- tar 压缩和解压缩使用笔记
tar 压缩和解压缩使用笔记 1 文件 1.1 打包 1.1 压缩 $ tar czf myfile.txt.tar.gz ./myfile.txt 1.2 解压缩 解压缩到目录: $ mkdir o ...
- 【转载】 Linux常用命令: zip、unzip 压缩和解压缩命令
Linux常用命令: zip.unzip 压缩和解压缩命令 Linux常用命令: zip.unzip 压缩和解压缩命令 zip的用法 基本用法是: zip [参数] [打包后的文件名] [打包的目 ...
- Linux关于压缩和解压缩实例
在谈到压缩和解压缩,我想说说它们的应用场景,其实它们主要的应用场景是有这么几个方面? (1)备份(几十个数据库每天进行备份,即包含数据又包含脚本,还有其他十分重要的日志文件等等); (2)降低服务器存 ...
- 『学了就忘』Linux基础命令 — 32、压缩和解压缩相关命令
目录 1.".zip"格式压缩 2.".gz"格式压缩 3.".bz2"格式压缩 4.".tar"格式打包 5.打包和压 ...
- Linux系列教程(八)——Linux常用命令之压缩和解压缩命令
前面一篇博客我们讲解了Linux帮助和用户管理命令,对于帮助命令,man 命令能获得命令和配置文件的帮助信息,help命令能获得shell内置命令的帮助信息.我们可以通过which来区分什么是shel ...
- Linux常用命令之压缩和解压缩命令
目录 1.压缩解压缩格式 .gz 一.将文件压缩为 .gz 格式,只能压缩文件:gzip 二.将 .gz 文件解压:gunzip 2.压缩解压缩格式 .tar.gz 一.将文件或目录压缩为 .tar. ...
随机推荐
- wchar_t 字符拼接
wcscat(L"C:\\abc", L"\\GPR.log");
- k8s之configmap应用
一.创建configmap 1.基于命令创建configmap root@k8s-master01:~# kubectl create configmap demoapp-cfg --from-lit ...
- Effective Python:简介
作者:布雷特·斯拉特金 本书的大部分范例代码都遵循Python 3.7版本的语法规范,Python 3.7发布于2018年6月.另外,书里还会给出一些采用Python 3.8语法规范所写的范例,让大家 ...
- Har 版本包发布
新建 Module 注意名字最好是小写命名 oh-package.json5 修改 description 描述信息 在 Index.ets 导出对外暴露的组件 export{ TitleBar } ...
- uni-app上传图片和文件
如图所示: 上传图片,使用的是uni.chooseImage这个官方api,count 数量根据自己的需求来,我们是最多只能上传9张 uploadImgEvent(){ uni.chooseImage ...
- Spring 源码阅读(二)IoC 容器初始化以及 BeanFactory 创建和 BeanDefinition 加载过程
相关代码提交记录:https://github.com/linweiwang/spring-framework-5.3.33 IoC 容器三种启动方式 XML JavaSE: ApplicationC ...
- mysql8在Win10下安装教程
一.准备工作 下载mysql8安装包,下载URL地址:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/ 二.管理员权限执行 ...
- 剑指offer39(Java)-数组中出现次数超过一半的数字(简单)
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 你可以假设数组是非空的,并且给定的数组总是存在多数元素. 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, ...
- 《领域驱动设计》:从领域视角深入仓储(Repository)的设计和实现
简介: <领域驱动设计>中的Repository(下面将用仓储表示)层实际上是极具有挑战性的,对于它的理解,也十分重要.本文讲大部分内容都在众多前辈理论基础上,从一个崭新的领域视觉开始探索 ...
- 支付宝移动端 Hybrid 解决方案探索与实践
支付宝 Hybrid 方案建设与演进 目前支付宝有 2 套 Hybrid 方案: HTML5 容器与小程序.小程序是最近几年才出来,H5 容器已经有了很长时间的历史,所以我们就先从 H5 容器说起. ...