linux打包与压缩
1.zip与unzip
zip压缩和unzip解压默认都不删除源文件,且zip生成的压缩文件名可以随意取(为便于辨认还是建议取源文件.zip),unzip也可以解压任意由unzip压缩的文件无需后缀为.zip。
zip [参数] 压缩后文件 待压缩文件
unzip [参数] 要解压文件名
2.gzip与gunzip
gzip表示压缩(也可解压缩),默认删除源文件,生成的文件名为源文件.gz,gzip只能压缩文件不能压缩目录
基本用法gzip [参数] 源文件
- -c:gzip默认会删除源文件,加-c可通过标准输出到重定向目标文件进而保留源文件,gzip -c 源>目标
- -v:显示压缩比
- -r:递归压缩目录下的每个文件,不能直接压缩目录
- -n:n为数字1-9,表示压缩等级,-1压缩最快压缩比最差,-9压缩最慢压缩比最好,使用默认-6就行
- -d:解压缩的参数,后缀需要为.gz才能识别,解压缩后直接去掉.gz后缀,也可直接使用gunzip解压缩
- -l:显示.gz压缩文件的相关信息
gzip进行的压缩可以使用gzip -d解压缩,也可以使用gunzip解压缩,gunzip解压时需要后缀需要为.gz才能识别,且默认删除源文件,参数-c可保留源文件。
[root@jenkins1 /tmp/phh]# ls a.txt [root@jenkins1 /tmp/phh]# gzip a.txt [root@jenkins1 /tmp/phh]# ls a.txt.gz [root@jenkins1 /tmp/phh]# gzip -l a.txt.gz compressed uncompressed ratio uncompressed_name 1319 7021 81.6% a.txt [root@jenkins1 /tmp/phh]# gzip -cdv a.txt.gz > a.txt a.txt.gz: 81.6% [root@jenkins1 /tmp/phh]# ls a.txt.gz a.txt [root@jenkins1 /tmp/phh]# ls c a.txt b.sql [root@jenkins1 /tmp/phh]# gzip -r c [root@jenkins1 /tmp/phh]# ll c a.txt.gz b.sql.gz [root@jenkins1 /tmp/phh]# gzip -9 -cv a.txt >a.txt.gz a.txt: 82.1%
3.bzip2与bunzip2
bzip2的用法基本类似gzip,不过bzip2压缩后的文件后缀名为bz2,并且压缩比要比gzip更高。
有一点不同的是bzip2没有-c参数,bzip2使用-k参数表示保留源文件bzip2 -k 源文件或者bunzip2 -k 源文件。
4.tar
tar的参数非常多,下面说几个常用的
- -c:新建打包文件
- -x:解打包的文件
- -t:查看打包文件包含的文件名,同一个命令中c、x、t只能出现一个
- -f:最后一个参数,后面跟目标文件
- -z:打包/解包时通过gzip/gunzip进行压缩/解压缩,此时文件名最好为.tar.gz
- -j:打包/解包时通过bzip2/bunzip2进行压缩/解压缩,此时文件名最好为.tar.bz2
- -v:将执行过程显示在屏幕上
- -C path:解压缩到-C指定的目录
压缩并打包:tar zcf ***.tar.gz *** [--exclude=... --exclude=... --exclude=...],--exclude=...表示排除某些目录,排除多个目录或文件再加--exclude=即可,多个exclude用空格分隔,且排除打包的时候最后面不能加/,例如--exclude=logs而不是logs/
解压并解包:tar zxf ***.tar.gz [-C path],-C path表示解压到指定目录,默认解压到当前目录
查看包内容:tar ztf ***.tar.gz