作者简介
李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。
一、前言
作为运维人员,经常会遇到“小李啊,帮我取一下今天的日志”,因此在Linux服务器上压缩包、解压包是经常的事情,但是就我个人而言,经常会遇到很多不一样的压缩解压工具,最常用的是tar。虽然经常用,但是还是很多参数记不住,当然不用去记住每一个参数,--help就行。在十万火急的情况下,一个解压还要去google一下,好像也不合理,因此记住常用的几个还是有必要的,再同样的技术水平情况下,那就只能比速度了。
二、Linux下最常用的压缩工具
1、tar
1)压缩
tar -zcvf too.tar.gz too
2)解压
#.tar.gz tar -zxvf too.tar.gz #.tar.gz2 tar -jxvf too.tar.gz2
3)排除某个目录打包
把too目录打包成too.tar.gz,除logs目录;注这里的too/logs后面不能加/,如果加的话还是会打包进去。
tar -czvf too.tar.gz --exclude=too/logs too
4)只打包某个目录,而不是全部打包进去
加-C参数, 这样的话可以只打包api3.0 ,而不会从/usr开始一个一个目录都打包进去
tar -zcf api3.0_`date +%Y%m%d%H%M%S`.tar.gz -C /usr/local/tomcat/webapps api3.0
2、gzip
gzip工具是Linux中最流行、最快的文件压缩工具,Gzip工具保留原始文件名称压缩文件的扩展名.gz和时间戳。
1)打包
gzip filename
2)解压
gzip -d filename # 打包的文件会被删除
3、bzip2
Bzip2实用程序执行更快的gzip,它压缩文件和文件夹更紧凑。压缩文件时需要更多的内存,为了减少内存消耗,在选项中通过-s标志。
1)压缩
bzip2 examplefile or bzip2 -s examplefile
2)解压
bzip2 -d examplefile.bz2 or bunzip2 examplefile.bz2
3)详细说明
bzip2 -v examplefile
4、Lzma
Lzma是一种压缩工具,与zip或tar类似,但与bzip相比,它的执行速度更快,虽然lzma是一个强大的工具,但它在Linux用户中并不流行。
1)压缩
lzma -c --stdout examplefile> examplefile.lzma
2)解压
lzma -d --stdout examplefile.lzma >examplefile
5、xz
XZ是lzma实用程序的继承者,它只能压缩单个文件,但不能在一个命令中压缩多个文件,它将自动为压缩文件添加.xz扩展名。
1)压缩
xz examplefile
2)解压
xz -d examplefile
6、pax
Pax它的执行速度很快,而且它不仅仅是一个压缩器,它可以真正的归档它可以远程复制文件,在Ubuntu/Mint Linux中,默认情况下Pax没有安装。
1)压缩
pax -wf examplefile.tar examplefile pax -wf examplefile.tar.gz examplefile
2)解压
pax -r <examplefile.tar
3)查看压缩包文件清单
pax -f examplefile.tar
7、7zip
7Zip文件压缩器是一个开源工具,它最初是为微软Windows开发的,它支持多种文件压缩格式和高文件压缩,它可以用一个命令压缩多个文件。
1)安装7zip
wget https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/p7zip-16.02-10.el7.x86_64.rpm wget https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/p7zip-plugins-16.02-10.el7.x86_64.rpm sudo rpm -U --quiet p7zip-16.02-10.el7.x86_64.rpm sudo rpm -U --quiet p7zip-plugins-16.02-10.el7.x86_64.rpm
2)压缩
7z a examplefile.7z examplefile
3)解压
7z a examplefile.7z examplefile
8、shar
Shar是一个命令行工具,可以用来压缩测试文件,Shar可以定义为“shell archive”。一个简单而快速的文件存档实用程序对于获取shell脚本的存档非常有用。
1)安装shar工具
yum -y install sharutils
2)压缩
shar examplefile > examplefile.shar
3)解压
unshar examplefile.shar
9、cpio
可以定义为复制输入和输出,它在输入中逐行读取文件名列表,在输出中读取归档文件。这是一个内置的经典命令。
1)压缩
ls | cpio -ov >/home/username/backup.cpio
2)解压
cpio -idv <backup.cpio
10、ar
rar的前身,仍然在Debian及其衍生物中使用,它是一个简单的归档工具,但并不是很流行。
1)压缩
ar cvsr examplefile.a examplefile
2)解压
ar -xv examplefile.a
11、iso
ISO制作iso镜像
dd if=/media/dvd of=/home/username/filename.iso