tar参数

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
-v:显示所有过程
-O:将文件解开到标准输出

  • 可选参数
    -z:有gzip属性的 tar.gz
    -j:有bz2属性的 tar.bz2
    -J:有xz属性 .tar.xz
  • -f: 使用档案名字,注意:这个参数是最后一个参数,后面只能接档案名

压缩

#压缩文件
tar -cvf xxx.tar 文件名1 文件名2

#压缩目录
tar -cvf xx.tar  test/

#高度压缩
tar -zcf xx.tar.gz *
tar -zcvf source.tar.gz *
文件夹
tar -zcPf /dataR/www/temp2/xx.tar.gz /dataR/www/temp2/

压缩目录:
tar -zcPf /tmp/xx.tar.gz -C /www/temp2/
只打包目录下的文件(不打包目录路径)
文件夹和文件名中间加空格
tar -zcPf /tmp/xx.tar.gz -C /www/temp2/ aa.txt
打包目录(不加路径)
tar -zcPf /tmp/xx.tar.gz -C /www/temp2/ .

#gz压缩,忽略目录,使用当前路径
tar -zcvPf bak/web/2024-06-03.tar.gz --exclude=.git/* --exclude=src/*  -C D:/2024/DIST/website .

追加文件到压缩包

tar -rvf xxx.tar 文件名1 文件名2

删除压包内的文件

#查看
tar -tvf test.tar
tar --delete dir/a.txt   -vf test.tar

解压

#解压目录 
tar -xvf xx.tar 
#解压到指定目录
tar -xvf xx.tar -C temp/

#查看压缩包内文件,不解压
tar -tf all.tar


#高压解压
tar -zxvf xx.tar.gz

#批量解压文件
tar -zxvf *.tar.gz -C logs/
ls *.tar.gz  | xargs  -n1 tar xzvf 
ls *.tar.gz | xargs -n1 tar xzvf(批量解压tar.gz)
ls *.tar | xargs -n1 tar xvf        (批量解压.tar)

bz2

压缩为*.bz2
tar -jcvf test.tar.bz2 test.txt
*bz2解压缩
tar -jxvf test.tar.bz2
解压
tar  -jxvf  xx.tar.bz2

tar.xz 高压缩

压缩
tar -Jcf xxx.tar.xz data/
解压
tar -Jxf linux-3.12.tar.xz
#解压到指定文件夹
tar -Jxf vr.tar.xz -C /dataX/vr/

tar压包时排除指定的文件

排除文件
tar -zcvf source.tar.gz --exclude=guide.pdf  *

打包时排除特定类型文件
tar -czvf /xx.tar.gz --exclude=catalina.*  ./* 
tar -czvf xx.tar.gz  --exclude=*.log ./*
tar -czvf xx.tar.gz  --exclude=*.jpg --exclude=*.png  --exclude=./logs  ./

3)打包时排除特定目录:
tar -czvf xx.tar.gz --exclude=/log     ./web/* //目录后面不要加斜杠 “/”

4)打包时排除多个目录:
tar -czvf xx.tar.gz --exclude=/log --exclude=/doc  /*

tar解压指定的文件


tar -xvf test.tar file1 path/file2 path3
tar -Jxf vr.tar.xz file1 path1

查看包内指定文件

tar xvpf vr.tar.xz vrimages/16/works/2b837791f9c0f740
tar xvpf vr.tar.xz vrimages/16/works/2b837791f9c0f740