解压缩tar.gz并为每个文件名

时间:2015-04-23 06:14:36

标签: linux append filenames tar

我想解压缩tar.gz,并为每个文件名后缀一个后缀。因此,例如abc.tar.gz包含文件' first'并且' second',因此,在提取之后,如果我想追加后缀' .append'每个文件的文件名应该是' first.append'和' second.append'。是否有命令或方法?

注意:名称为' first'的文件和第二个'已经存在了,我想在不影响已有文件的情况下解压缩。

我能想到的一件事是在临时目录中解压缩,然后逐个复制所有文件。但是,如果可能的话,我想一次性完成,这样就可以节省时间。

提前致谢。

2 个答案:

答案 0 :(得分:1)

试试这个:



#!/bin/bash
COMPRESS_F=abc.tar.gz
if [ $# -ne 0 ]; then
        COMPRESS_F=$1
fi
for i in `tar -tf "$COMPRESS_F"`; do
if [ -f $i ]; then
        echo "mv ${i} ${i}.orig"
        mv ${i} ${i}.orig
fi
done

for i in `tar -xvzf "$COMPRESS_F"`; do
        echo "mv ${i} ${i}.append"
        mv ${i} ${i}.append
        if [ -f ${i}.orig ]; then
                echo "mv ${i}.orig ${i};"
                mv ${i}.orig ${i};
        fi
done




答案 1 :(得分:0)

得到解决方案,我们可以使用' - 转换' tar命令的选项,如下所示:

tar -(x/c)vf archive.tar --transform 's,/abc$,/abc.append,'

这会将所有abc文件转换为abc.append。