我的情况如下: 有几个名为tar1.tar.gzip,tar2.tar.gzip等的tar文件。 每个文件都包含一个不同的文件,但名称相同-fn.csv。
如果我一个接一个地解压到相同目录,则得到最后一个, 有没有办法让tar附加内容而不是单步执行?
到目前为止,我已经将副本添加到每个解压缩文件之后的唯一文件名中,然后将所有文件串联起来,还有没有更直接的方法(python或bash)?
答案 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
。我认为存档中仅包含一个文件。