如何创建平面tar档案

noi*_*isy 10 gzip tar

我的tree命令返回

tmp
`-- t
    `-- e
        |-- 23.ps
        `-- s
            |-- adsf.ps
            `-- t
                `-- dupa.ps
Run Code Online (Sandbox Code Playgroud)

如何在tmp目录中创建存档ps.tar.gz,结构如下:

tmp
|-- ps.tar.gz
|   |-- 23.ps
|   |-- adsf.ps
|   `-- dupa.ps
`-- t
    `-- e
        |-- 23.ps
        `-- s
            |-- adsf.ps
            `-- t
                `-- dupa.ps
Run Code Online (Sandbox Code Playgroud)

小智 11

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

tar -c --xform s:^.*/:: your-files
Run Code Online (Sandbox Code Playgroud)


Dav*_*all 5

outfile=$(pwd)/ps.tar;find . -type f | while read file; do 
    tar rf $outfile -C $(dirname $file) $(basename $file)
done
gzip $outfile
Run Code Online (Sandbox Code Playgroud)