1、参考
11-文件压缩与打包
linux tar压缩排除指定文件夹
2、打包与压缩
在windows上似乎打包和压缩是同一个东西,大家都明白你的意思,实际上是打包和压缩是两个过程,只不过常用zip压缩一站式解决了。
打包:就是将文件夹或多个文件打包,但是不压缩,比如将一个目录打包为一个文件,但是大小前后是不变的。
压缩:就是对文件进行压缩,减小大小。
zip就不用说了,在windows上很常见,但是在linux上更常用的时tar+gz。
tar负责打包,而gz(gzip)负责压缩,且能够将权限一起打包。
众所周知,linux中全部都是文件,文件就离不开权限,其他一些压缩文件只打包文件不包括权限,在linux中解压后可能还需要chmod去改变权限,比较麻烦而且某些时候文件多了都不知道哪些文件应该具有哪些权限,所以tar.gz是非常方便的。
3、tar的基本使用
tar的参数有:
- -z:表示压缩类型是.tar.gz
- -c:表示当前行为是打包
- -x:表示当前行为是解压文件包
- -v:显示命令执行过程
- -f:指定打包后文件名
- -C:解压到指定路径
常用的参数组合有:
- 压缩命令:
tar -zcvf xx.tar.gz dir
- 解压命令:
tar -zxvf xxx.tar.gz -C save_dir
当然有时候目录中夹杂不想要的文件/夹,所以打包压缩希望能够exclude:
比如:tar -zcvf home.tar.gz --exclude home/dir1 --exclude home/dir2 home
该命令要压打包缩home文件夹,并且排除了dir1和dir2两个子文件夹,
注意:是home/dir1而不能是home/dir1/,否则还是会将dir打包进去
4、zip和unzip的使用
zip是用于打包压缩的工具,而unzip是用于解压的工具。