01 Dec 2014
gzip作用:压缩及解压缩文件,压缩文件后缀名为”.gz”
语法: gzip [参数] filename
参数:
-c 将源文件做标准输出,源文件保留-n n为数字代表压缩级别,默认为6(1-9),1最快,9压缩比最好-d 解压缩的参数压缩文件内容查看命令:zcat file.gz
PS:
- gzip压缩和解压后
- 默认源文件会消失
- 不支持压缩目录
# 用-c保留源文件 gzip -c pass > pass.gz du -sh pass* 8.0K pass 4.0K pass.gz # 同时压缩或解压缩多个文件 gzip t1 t2 t3 t4 t5 t6 ls t* t1.gz t2.gz t3.gz t4.gz t5.gz t6.gz gzip -d t1.gz t2.gz t3.gz t4.gz t5.gz t6.gz ls t* t1 t2 t3 t4 t5 t6
bzip2作用:压缩及解压缩文件,压缩文件后缀名为”.bz2”
语法: bzip2 [参数] filename
参数:
-d 解压缩参数-k 压缩及解压缩时都保留源文件压缩文件内容查看命令:bzcat file.bz2
PS:
- 压缩效果好过gzip,但效果资源更多,压缩效果并不绝对;
- bzip2压缩及解压缩后,默认源文件消失;
- 不支持压缩目录
# 用-k参数保留源文件 bzip2 -k pass du -sh pass* 8.0K pass 4.0K pass.bz2 # 同时压缩或解压缩多个文件 bzip2 t1 t2 t3 t4 t5 t6 ls t* t1.bz2 t2.bz2 t3.bz2 t4.bz2 t5.bz2 t6.bz2 bzip2 -d t1.bz2 t2.bz2 t3.bz2 t4.bz2 t5.bz2 t6.bz2 ls t* t1 t2 t3 t4 t5 t6
xz作用:压缩及解压缩文件,后缀名为”.xz”
安装方法:yum install -y xz
语法:xz [参数] filename
参数:
-d 解压缩参数-c 将源文件做标准输出,源文件保留-k 压缩及解压缩时都保留源文件压缩文件内容查看命令:xzcat file.xz
PS:
- xz压缩及解压缩后,默认源文件消失;
- 不支持压缩目录;
- 支持压缩多个文件
zip/unzip作用:压缩及解压缩文件,后缀名为”.zip”
安装方式:yum install -y zip/unzip(需要分别安装)
语法:
zip file.zip fileunzip file.zip参数:
-m “move”压缩源文件并删除-b 跟path,指定压缩过程临时使用的文件夹,并不是说要把压缩文件放在那里-d “delete”从压缩文件内删除指定文件(zip -d file.zip deletefile1 deletefile2)-r 压缩目录(zip -r dir.zip dir/)
压缩文件内容查看命令:unzip -v file.zipPS:
- 不会删除源文件;
- 多用于windows和linux互传文件
- 可同时压缩多个文件
# -m参数压缩时会删除源文件 zip -m t1.zip t1 adding: t1 (stored 0%) ls t1 ls: cannot access t1: No such file or directory # -v查看压缩文件内容 unzip -v t.zip Archive: t.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 12-02-2014 22:32 00000000 t1 0 Stored 0 0% 12-02-2014 22:32 00000000 t2 98 Defl:N 12 88% 12-02-2014 23:45 828c4283 t3 0 Stored 0 0% 12-02-2014 22:35 00000000 t4 0 Stored 0 0% 12-02-2014 22:37 00000000 t5 0 Stored 0 0% 12-02-2014 22:37 00000000 t6 -------- ------- --- ------- 98 12 88% 6 files # -d参数删除压缩文件内的指定文件 zip -d t.zip t1 t2 deleting: t1 deleting: t2 unzip -v t.zip Archive: t.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 98 Defl:N 12 88% 12-02-2014 23:45 828c4283 t3 0 Stored 0 0% 12-02-2014 22:35 00000000 t4 0 Stored 0 0% 12-02-2014 22:37 00000000 t5 0 Stored 0 0% 12-02-2014 22:37 00000000 t6 -------- ------- --- ------- 98 12 88% 4 files # 压缩目录必须加-r,才可以压缩目录内容 tree a a └── a.txt 0 directories, 1 file # 不加-r压缩目录 zip a.zip a adding: a/ (stored 0%) unzip -v a.zip Archive: a.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 05-04-2016 05:56 00000000 a/ -------- ------- --- ------- 0 0 0% 1 file # 加-r压缩目录 zip -r a.zip a adding: a/ (stored 0%) adding: a/a.txt (stored 0%) unzip -v a1.zip Archive: a1.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 0 Stored 0 0% 05-04-2016 05:56 00000000 a/ 0 Stored 0 0% 05-04-2016 05:56 00000000 a/a.txt -------- ------- --- ------- 0 0 0% 2 files
tar作用:将目录或文件打包的工具,后缀名为”.tar”
语法:tar [参数] file
参数:
主参数
-c 表示建立包-x 表示拆包-t 查看包次要参数
-v, 显示打包过程-f, 后面跟包文件路径及包名称, -f后面必须紧跟路径及名称,中间有空格,此参数一般放在最后面--exclude, 可以在打包的时候,排除某些文件或者目录tar -czvf 1.tar.gz --exclude 1.txt dir/tar -czvf 1.tar.gz --exclude 1.txt --exclude 123/ dir/-h (--dereference),打包软连接指向的文件而不是打包软连接本身--hard-dereference,打包硬链接指向的文件而不是硬链接本身-P 原本默认的是相对路径,加上-P后是绝对路径解压缩相关参数
-z 表示打包的同时使用gzip工具将其压缩,后缀名为”.tar.gz”-j 表示打包的同时使用bzip2工具将其压缩,后缀名为”.tar.bz2”-J 表示打包的同时使用xz工具将其压缩,后缀名为”.tar.xz”-C 制定解压目录ps:
- tar命令会覆盖文件,不会提示
- 参数前面的-可加可不加,强烈建议养成加-的习惯
- gzip和bzip2单独不可对目录压缩,但是配合打包可以压缩目录。
- 不管是打包还是解包,原来的文件是不会删除的,但它会覆盖当前已经存在的文件或者目录。
## 基础用法 # -c打包,-t查看包内容,-f紧跟压缩包名称 tar -czf t.tar.gz t1 t2 t3 t4 tar -tzf t.tar.gz t1 t2 t3 t4 # -x解压包,-C制定解压目录 tar -xzf t.tar.gz -C tardir ls tardir t1 t2 t3 t4 ## --exclude的用法 ls |xargs -i cp {} {}.bak ls |xargs -i cp {} {}.log ls t1 t1.bak.log t2 t2.bak.log t3 t3.bak.log t1.bak t1.log t2.bak t2.log t3.bak t3.log # 指定文件排除 tar -czf b.tar.gz t1 t2 t3 --exclude t3 tar -tzf b.tar.gz t1 t2 # 利用通配排除以".log"结尾的,通配用法中需要用双引号哦 tar -czf a.tar.gz ./* --exclude "*.log" tar -tzf a.tar .gz ./t1 ./t1.bak ./t2 ./t2.bak ./t3 ./t3.bak ## 不常用用法 # 去除绝对路径(为了安全,避免tar解压覆盖目录) # 打包/etc目录内容,会提示去除了根绝对路径 tar -czf q.tar /etc/* tar: Removing leading '/' from member names # -P是改变相对路径为绝对路径,危险,慎用。 ## tar解压覆盖文件研究 # 第一种情况: # tar命令使用时忘记写压缩包名称,产生的文件覆盖 cat t1 line 1 cat t2 line 1 line 2 tar -cvf t1 t2 t2 cat t1 t20000644000000000000000000000001612712424445010026 0ustar rootrootline 1 line 2 # 第二种情况: # tar解压文件时,会自动覆盖解压目录下的同名文件 cat t1 line 1 cat t2 line 1 line 2 tar cvf t.tar t1 t2 t1 t2 echo "new line" >> t1 cat t1 line 1 new line tar xvf t.tar t1 t2 cat t1 line 1