我的tree
命令返回
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 :(得分:11)
对于GNU tar,您可以使用--xform
参数。它需要sed
表达式并将其应用于每个文件名。因此,要删除所有字符,直到最后/
,您可以使用:
tar -c --xform s:^.*/:: your-files
答案 1 :(得分:4)
outfile=$(pwd)/ps.tar;find . -type f | while read file; do
tar rf $outfile -C $(dirname $file) $(basename $file)
done
gzip $outfile