在使用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
完。