我在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。这是一种具有不同名称的数据库还原。
提前多多感谢。
答案 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。