Linux tar帮助提取文件夹

时间:2014-10-25 20:25:13

标签: tar

我在stackoverflow上找到了答案,但有些困惑。我需要一些帮助。

我有一个tar文件,其中包含如下文件和文件夹:usr / CCS / HMS *

我想提取所有文件和文件夹usr / CCS / HMS *但是要进入不同的文件系统,新的文件系统是/ usr / TRAINP

HMS *应取代TRAINP *。 TRAINP有像TRAINP / TRAINP.GL,TRAINP.AR等文件夹 备份包含usr / CCS / HMS / HMS.GL,usr / CCS / HMS.AR等文件夹

当我这样做时,它正在/ usr / TRAINP下恢复。我希望usr / CCS / HMS *替换/ usr / TRAINP。这是一种具有不同名称的数据库还原。

提前多多感谢。

1 个答案:

答案 0 :(得分:0)

Tar本身在提取时不重命名内容。最好的办法是提取到目标文件系统中的某个位置,然后将结果移动到所需的位置。

例如:

cd /usr/CCS/TRAINP1
tar xf archive.tar usr/CCS/HMS1
mv usr/CCS/HMS1/* .

或者,如果TRAINP目录不存在:

cd /
tar xf archive.tar usr/CCS
cd usr/CCS
for file in HMS*; do mv "$file" "TRAINP${file#HMS}"; done

当然,有许多变体和替代品会产生相同的结果。注意我的示例假设usr / CCS属于/ usr / CCS。