如何创建平面 tar 存档

发布于 2024-10-16 04:11:56 字数 438 浏览 1 评论 0原文

我的 tree 命令返回

tmp
`-- t
    `-- e
        |-- foo.ps
        `-- s
            |-- bar.ps
            `-- t
                `-- baz.ps

如何在 tmp 目录中创建具有以下结构的存档 ps.tar.gz

tmp
|-- ps.tar.gz
|   |-- foo.ps
|   |-- bar.ps
|   `-- baz.ps
`-- t
    `-- e
        |-- foo.ps
        `-- s
            |-- bar.ps
            `-- t
                `-- baz.ps

:?

my tree command returns

tmp
`-- t
    `-- e
        |-- foo.ps
        `-- s
            |-- bar.ps
            `-- t
                `-- baz.ps

How can I create archive ps.tar.gz in tmp directory with following structure:

tmp
|-- ps.tar.gz
|   |-- foo.ps
|   |-- bar.ps
|   `-- baz.ps
`-- t
    `-- e
        |-- foo.ps
        `-- s
            |-- bar.ps
            `-- t
                `-- baz.ps

?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

_失温 2024-10-23 04:11:56

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

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

for GNU tar you can use the --xform argument. It takes a sed expression and applies it on each file name. So for removing all characters up to the last /, you may use:

tar -c --xform s:^.*/:: your-files
司马昭之心 2024-10-23 04:11:56
outfile=$(pwd)/ps.tar;find . -type f | while read file; do 
    tar rf $outfile -C $(dirname $file) $(basename $file)
done
gzip $outfile
outfile=$(pwd)/ps.tar;find . -type f | while read file; do 
    tar rf $outfile -C $(dirname $file) $(basename $file)
done
gzip $outfile
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文