tar命令的常规使用
使用参考:
解压文件 tar -zxvf xxx.tar.gz
打包文件 tar -zcvf xxx.tar.gz *.jpg
命令行的主要选项
-c 建立压缩档案
-x 从tar包中把文件提取出来
-z 表示tar包是被gzip压缩过的,所以解压时需要用gunzip解压
-v 显示详细信息
-f xxx.tar.gz 指定被处理的文件是 xxx.tar.gz
-t list the contents of an archive 查看文件列表需要加上选项f,f选项表示文件,后面的文件名为其值
还有其他一些常见的压缩方式
-j 表示文件是使用bzip2方式压缩的,后缀名*.bz2
-J 表示文件是使用xz方式压缩的,后缀名是*.xz
tar -tvf xxx.tar.gz 查看压缩包的文件列表,不解压
pigz压缩
tar cvf - 目录名 | pigz -9 -p 24 > xxx.tgz
pigz命令中用法-9是压缩比率比较大,-p是指定使用cpu的核数
pigz解压
pigz -d xxx.tgz 这时候解压出来的是tar包,需要再用 tar -xvf xxx.tar 进行解包
压缩解压不带文件夹,如当前目录在/opt/packages/
1) 要将当前目录tmp下的所有文件压缩(注意后面一个点目录,表示/opt/packages/tmp/的当前目录)
tar -zcvf xxx.tar.gz -C /opt/packages/tmp/ . (这里不能用通配符??比如 ./agent*.log)
也可以不写全路径
tar -zcvf xxx.tar.gz -C ./tmp/ .
2) 要将xxx.tar.gz解压到tmp目录下(不指定C参数的话,默认解压到当前目录)
tar -zxvf xxx.tar.gz -C ./tmp/
tar压缩排除某个目录,如日志目录(注意logs目录后面没有斜杠/)
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat
tar -cvf和tar cvf区别(-)
-其实是有相应的功能的,有-没-是有差别的
例如 :
1,tar -xbfp 20 /dev/ntape/tape0
2,tar xbfp 20 /dev/ntape/tape0
3,tar -xb 20 -f /dev/ntape/tape0 -p
这三个命令是等效的 ,但是 tar命令不再建议在1这样的一串选项(xbfp)前使用 -, -的应用范围应该是类似于3这样的命令环境中,也就是参数分开使用的情况
连续无分隔参数不应该再使用- , 在某些版本的tar命令中如果你在连续无分隔参数前使用了- ,程序会正常执行 ,但是会报告一个警告,不过不影响效果
命令行中-的主要作用有
1,为应用程序指定参数。如ps -aux
2,表示上一级那个工作目录。如cd -
3,表示标准输出流。如tar -cvf - /home | tar -xvf -
说明:tar -cvf - /home 将home打包到stdout(-),| 管道,即前一命令的输出为后一命令输入,tar -xvf - 从stdin(-)解包



