Linux解压缩前缀

时间:2015-05-22 12:12:38

标签: linux bash

我想要将多个tar解压缩到一个文件夹中,然后为它们添加前缀。问题是我不知道它将在目标系统上创建的文件夹的名称,因为它们是构建tar并且它们内部有日期时间戳。这是我试过的 -

tar xfz <filename>-*.tar.gz -C $UNTAR_LOCATION 

因此,这会在目标20140909-0900上创建一个类似UNTAR_LOCATION的文件夹。如何在日期时间戳中附加前缀?

注意 - 在UNTAR_LOCATION下会有多个文件夹具有不同的日期时间戳,我想为其添加相同的前缀。

2 个答案:

答案 0 :(得分:1)

对于支持--transform标志的tar版本,您应该可以使用以下内容:

tar -xzf <filename>-*.tar.gz -C "$untar_location" --transform='s,^,prefix,'

答案 1 :(得分:1)

以下是如何使用便携式归档程序pax执行此操作:

gzip -cd filename.tar.gz | ( cd "$untar_location" && pax -r -s,^,prefix-, )

pax的大多数实现也有一个-z选项来过滤gzip,在这种情况下它变为

( cd "$untar_location" && pax -zrf filename.tar.gz -s,^,prefix-, )