注意:该部分在MAC上并不完全适用,可能是版本存在区别,使用压缩的--exclude命令时在Linux下成功了,但是MAC上一直报错,我也还在找原因。
首先介绍tar常用命令:
1. 压缩
(1)tar -cvf 加压缩后包名 加压缩路径名------只打包无压缩
(2)tar -czvf 加压缩后包名 加压缩路径名------使用gz压缩
(3)tar -cjvf 加压缩后包名 加压缩路径名------使用bz2压缩
2. 解压
(1)tar -xvf 加压缩包名 加解压路径------解压tar包
(2)tar -xzvf 加压缩包名 加解压路径------解压tar.gz包
(3)tar -xjvf 加压缩包名 加解压路径------解压tar.bz2包
参数 | 参数作用 | 备注 |
c | 解压 | 因此和压缩是冲突的 |
x | 压缩 | |
z |
使用gzip压缩方式 | |
j |
使用bzip2压缩方式 | |
J | 使用xz压缩方式 | |
v | 是否展示 |
会显示压缩/解压过程,不加则不显示 |
f | 文件 | 该参数后带解压(压缩)文件名,因此必须放在最后 |
最后说明压缩时剔除某些不想压缩的文件
百度上有很多相关的说明,但是!很多都是无法使用的,而且强烈怀疑由于tar版本不同该功能使用方式有很大的出入,因此可能我成功了,你没有成功。
系统是Centos6,tar版本为1.23
使用方式如gzip压缩并排除.log文件则为
tar -czf <file> <file/path> --exclude *.log
终于成功的根据tar的帮助找到的正确使用方式,已经在MAC下尝试可以成功
tar --exclude *.log -czf <file> <file/path>
之前失败的原因是因为-f参数会把他后面的所有参数都当做文件名来读取,把--exclude和*.log都当做了文件名,所以一直报错,于是我给放到前面去,果然成功了。
网上好多奇怪的在exclude后面加‘=’的做法,不知道是不是老版本的用法,1.23和2.8.3使用tar --help里面都明确写明了--exclude后面直接加文件patterns。
我mac下的tar版本是2.8.3。
全部评论