如何创建平tar归档

问题描述:

tree命令返回如何创建平tar归档

tmp 
`-- t 
    `-- e 
     |-- 23.ps 
     `-- s 
      |-- adsf.ps 
      `-- t 
       `-- dupa.ps 

我怎样才能创建tmp目录归档ps.tar.gz具有以下结构:

tmp 
|-- ps.tar.gz 
| |-- 23.ps 
| |-- adsf.ps 
| `-- dupa.ps 
`-- t 
    `-- e 
     |-- 23.ps 
     `-- s 
      |-- adsf.ps 
      `-- t 
       `-- dupa.ps 

+0

mkdir archive;找到t/-name * .ps -exec ln {} archive/\; ; (cd archive && tar zcf ../ps.tar.gz * .ps); rm -rf archive – sastanin 2011-02-04 13:01:44

outfile=$(pwd)/ps.tar;find . -type f | while read file; do 
    tar rf $outfile -C $(dirname $file) $(basename $file) 
done 
gzip $outfile 
+1

不需要“cd”,使用tar的-C! – chris 2011-02-04 13:00:02

+0

好点chris,更新使用它! – cowsandmilk 2011-02-04 13:35:11

对于GNU tar,您可以使用--xform参数。它需要一个sed表达式并将其应用于每个文件名。因此,要删除最后一个/的所有字符,您可以使用:

tar -c --xform s:^.*/:: your-files