使用tar在压缩和解压缩时如何去掉一些目录
在使用tar时,有时需要在解压缩时去掉顶层目录,下面介绍两个一些可行的做法. 通常在做压缩和解压时,是这么操作的: $ tree a/ a/ ├── a.txt └── b ├── b.txt └── c ├── c.txt └── d └── d.txt 压缩: tar -czf a.tar.gz a/ 解压: tar -xf a.tar.gz -C tmp/ 此时,tmp目录下的文件结构: $ tree tmp/ tmp/ └── a ├── a.txt └── b ├── b.txt └── c ├── c.txt └── d └── d.txt 有时不想看到顶层目录a 方法一:压缩时处理 压缩: tar -czf a.tar.gz -C a/ . 解压: tar -xf a.tar.gz -C tmp/ tmp下的目录结构: $ tree tmp/ tmp/ ├── a.txt └── b ├── b.txt └── c ├── c.txt └── d └── d.txt 方法二:解压时处理 压缩: tar -czf a.tar.gz a/ 解压: tar -xf a.tar.gz --strip-components=1 -C tmp/ 此时tmp下的目录结构: $ tree tmp/ tmp/ ├── a.txt └── b ├── b.txt └── c ├── c