在使用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.txt └── d └── d.txt
完。
来源:https://www.cnblogs.com/pengdonglin137/p/12125489.html