免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7509 | 回复: 8
打印 上一主题 下一主题

[故障求助] tar 解压缩绝对路径的文件,不想创建绝对路径(太多目录)怎么办? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-21 08:48 |只看该作者 |倒序浏览
tar 解压缩绝对路径的文件,不想创建绝对路径(太多目录)怎么办?

     从另外一个机器上取得大量.tar文件,由于原先是绝对路径压缩的,解开时不想一个一个创建目录,需要放到另外一个指定目录。怎么解开。

      比如绝对路径是/hrg3/newpredeal/backup/./

         解包后想放到/backup/

        tar -xvf *.tar -C /backup/(用法不对)

论坛徽章:
0
2 [报告]
发表于 2006-02-21 09:12 |只看该作者
压缩时用的绝对路径,解压时也必定是绝对路径

论坛徽章:
0
3 [报告]
发表于 2006-02-21 10:25 |只看该作者
因为压缩时是生产系统压缩的,不能在生产系统上解。而文件又有几百个G,绝对路径又有好多。测试机根目录又不能创建。愁死了!

论坛徽章:
0
4 [报告]
发表于 2006-02-21 12:42 |只看该作者
不用慌张。不仅有办法,还有两个。
1。  Download  and install a GNUTar, 具体可以man一下gtar。

或者:
2. 用pax命令

用你的例子,可以用一下命令解包到/backup/

pax -rpe -f /dev/rmt0 -s:^/hrg3/newpredeal/backup/:/backup/:g

[ 本帖最后由 sar 于 2006-2-21 12:45 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2006-02-21 13:55 |只看该作者
如果生成了绝对路径的tar备份,又必须恢复到其他目录中,那么请使用pax命令做恢复。示意如下:

1、用tar做绝对路径的备份,备份了/var下所有的文件。
# tar -cvf /dev/rmt0 /var
2、切换到/tmp目录。
# cd /tmp
3、把磁带上用tar和绝对路径备份的内容恢复到当前路径:
# pax -s!\/!.\/! -rvf /dev/rmt0
此时,用ls可以看到在/tmp目录下有一个/var目录,其中包含着所有的原/var目录下的所有文件和子目录。

gtar没用过 有时间试试·

论坛徽章:
0
6 [报告]
发表于 2006-02-21 14:53 |只看该作者

太谢谢了

多谢,我马上就试!

论坛徽章:
0
7 [报告]
发表于 2006-02-21 14:59 |只看该作者

期待结果

认真看了看,期待结果如何!请楼主尽快发表。

论坛徽章:
0
8 [报告]
发表于 2006-02-21 15:01 |只看该作者

谢谢sar、谢谢chinadns

谢谢sar、谢谢chinadns

[ 本帖最后由 mudkid 于 2006-2-21 15:12 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2006-02-21 23:46 |只看该作者
给大家举个具体的例子吧,希望能看明白。

/home/jasonlia$ ls -l /home/jasonlia/testdir
total 2
drwx------   2 jasonlia staff           512 Feb 21 08:55 dir1
-rw-------   1 jasonlia staff             0 Feb 21 08:54 file1
-rw-------   1 jasonlia staff             9 Feb 21 08:55 file2
/home/jasonlia$  tar cvf data.tar /home/jasonlia/testdir/
a /home/jasonlia/testdir/
a /home/jasonlia/testdir/file1 0 blocks.
a /home/jasonlia/testdir/file2 1 blocks.
a /home/jasonlia/testdir/dir1
a /home/jasonlia/testdir/dir1/file4 1 blocks.

/home/jasonlia$ mkdir untar

/home/jasonlia$ pax -rpe -f data.tar -s:^/home/jasonlia/testdir/:/home/jasonlia/untar/:g
/home/jasonlia$ ls -l /home/jasonlia/untar/
total 2
drwx------   2 jasonlia staff           512 Feb 21 08:55 dir1
-rw-------   1 jasonlia staff             0 Feb 21 08:54 file1
-rw-------   1 jasonlia staff             9 Feb 21 08:55 file2
/home/jasonlia$


如果你的tar 在磁带里,就要用 -f /dev/rmt0. 我的例子是一个叫data.tar 的文件。

[ 本帖最后由 sar 于 2006-2-21 23:47 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP