Linux下tar命令解压及压缩说明

1444人浏览 / 0人评论 / 添加收藏

注意:该部分在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。

全部评论