产生测试资料
cd /tmp mkdir 11/22/33 -p touch 11/f1 touch 11/22/f2 touch 11/22/33/f3
目录结构
tree tmp tmp └── 11 ├── 22 │ ├── 33 │ │ └── f3 │ └── f2 └── f1
压缩
一般来说我们会使用zcf
指定tar
完成后再gzip
,我们看看2个指令的差别
指令1
tar -zcf b1.tar.gz tmp/
指令2
cd tmp tar -zcf ../b2.tar.gz .
压缩完成后看一下目录结构
tar tzf b1.tar.gz tmp/ tmp/11/ tmp/11/f1 tmp/11/22/ tmp/11/22/f2 tmp/11/22/33/ tmp/11/22/33/f3
tar tzf b2.tar.gz ./ ./11/ ./11/f1 ./11/22/ ./11/22/f2 ./11/22/33/ ./11/22/33/f3
上面看到虽然压缩的内容一样,但会因指定路径的关系造成目录结构的不同,那如果想要消除最上层的目录结构像b2.tar.gz
的内容是不是就要切到当前目录进行压缩才行?这答案当然是不需要的,参数上面只要再加上-C(--directory)
指定目录路径就能像你自行切到当前目录一样的效果
-C (–directory)
如果要保持b2.tar.gz
的结构,在参数上面将原本要cd tmp/
的指定换成-C tmp/
目录加上,
tar -zcf b3.tar.gz -C tmp/ .
压缩好后看一下结构:
tar tzf b3.tar.gz ./ ./11/ ./11/f1 ./11/22/ ./11/22/f2 ./11/22/33/ ./11/22/33/f3