首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改tar文件中的文件名,而不将文件解压到临时位置

修改tar文件中的文件名,而不将文件解压到临时位置
EN

Unix & Linux用户
提问于 2020-07-01 08:27:12
回答 1查看 3.2K关注 0票数 8

我有一个tar文件,其中包含名为old_name的文件夹中的一些文件。现在,我想创建一个新的tar文件,其中该文件夹已被重命名为new_name,而无需解压到磁盘,因为对于大型归档文件(磁盘读写速度的两倍以上),这样的速度要慢得多。

我知道怎么做:tar -xf old.tar; tar -cf new.tar --transform 's/old_name/new_name/' old_name

我试过几件事,但似乎都没有用:

  • tar -cOf old.tar | tar -xf new.tar --transform 's/old_name/new_name/'
  • cat old.tar | tar --delete --transform 's/old_name/new_name/' > new.tar
  • cat old.tar | tar -u --transform 's/old_name/new_name/' > new.tar

但似乎什么都起不到作用。

我发现这些是封闭的:

但是这些都是关于删除tarball中的文件,而不是改变它们的路径。

EN

回答 1

Unix & Linux用户

发布于 2020-07-01 11:23:25

tar可以创建或提取tar,但不能以这种方式对流进行操作。

您将需要类似于tar-stream的东西--它甚至有一个执行您所要求的示例:

https://github.com/mafintosh/tar-stream#modifying-existing-tarballs

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/596040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档