解压多个tar文件,这些文件与串联/附加的文件相同

时间:2018-09-03 15:04:33

标签: python bash unix gzip tar

我的情况如下: 有几个名为tar1.tar.gzip,tar2.tar.gzip等的tar文件。 每个文件都包含一个不同的文件,但名称相同-fn.csv。

如果我一个接一个地解压到相同目录,则得到最后一个, 有没有办法让tar附加内容而不是单步执行?

到目前为止,我已经将副本添加到每个解压缩文件之后的唯一文件名中,然后将所有文件串联起来,还有没有更直接的方法(python或bash)?

2 个答案:

答案 0 :(得分:2)

tar无法选择执行此操作。为了比目前的解决方案做得更好,您需要编写自己的untar,并将其附加到当前文件之后。

答案 1 :(得分:1)

使用GNU tar:

fileno="42"
tar -xvzf "tar${fileno}.tar.gzip" --transform 's/.*/file'"${fileno}"'.csv/' --show-transformed-names

这会将tar42.tar.gzip提取到当前目录,并将其文件命名为file42.csv。我认为存档中仅包含一个文件。