我有一个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.tarcat old.tar | tar -u --transform 's/old_name/new_name/' > new.tar但似乎什么都起不到作用。
我发现这些是封闭的:
但是这些都是关于删除tarball中的文件,而不是改变它们的路径。
发布于 2020-07-01 11:23:25
tar可以创建或提取tar,但不能以这种方式对流进行操作。
您将需要类似于tar-stream的东西--它甚至有一个执行您所要求的示例:
https://github.com/mafintosh/tar-stream#modifying-existing-tarballs
https://unix.stackexchange.com/questions/596040
复制相似问题