Linux - 如何在不提取内容并再次应用 tar 的情况下重命名 .tgz 文件中的文件?

问题描述 投票:0回答:3

我有一个名为 test.tgz 的 tar 文件,里面有以下文件:

tool.foo
atest.you
btest.you
ctest.you
t.you

我想将 test.tgz 内的文件重命名为:

0.foo
0.you
1.you
2.you
3.you

无需解压文件并重新打包。我怎样才能做到这一点?

linux bash tar
3个回答
1
投票

即使您无法重命名 tar 存档中的文件,您也可以在提取文件时使用 sed 表达式动态重命名它们。焦油选项是--transform [sed-expression]

    


0
投票

需要在重命名文件之前提取它们。当文件位于 tgz 中时,它们将受到保护,不会被更改。


0
投票
tarcust

tardy 等工具传输 tar 文件来编辑其成员的名称。它们对原始 tar 数据进行操作,因此您也需要通过 gunzip/

gzip
来传输它们。例如,类似:
< original.tar.gz gunzip | tarcust OPTIONS GO HERE | gzip > new.tar.gz

© www.soinside.com 2019 - 2024. All rights reserved.