免费注册 查看新帖 |

Chinaunix

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

请教:怎样用代码判断tar一个包没有错误?谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-16 09:10 |只看该作者 |倒序浏览
tar cvf asdf.tar asdf/ 2>asdf.log

使用如上代码可以将tar时产生的日志写到asdf.log中,但怎样使用代码判断asdf.log中没有错误呢?

论坛徽章:
0
2 [报告]
发表于 2006-05-16 09:31 |只看该作者
tar cvf asdf.tar asdf/ && echo success || echo error

论坛徽章:
0
3 [报告]
发表于 2006-05-16 09:36 |只看该作者
机器:9000/800/L3000-7x
OS :hp 11.11
成功时产生的日志的格式为:
a ./a/19/191.dmp.Z 206 blocks
a ./a/19/192.dmp.Z 107 blocks
a ./a/19/193.dmp.Z 11 blocks
a ./a/19/a.dmp.Z 206 blocks

好像不能使用 tar cvf asdf.tar asdf/ && echo success || echo error ,因为成功时没有在最后一行写上success啊

[ 本帖最后由 zhanghome 于 2006-5-16 09:39 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-05-16 10:41 |只看该作者
l    Tell tar to complain if it cannot resolve all of the links
                to the files being saved.  If l is not specified, no error
                messages are printed.

论坛徽章:
0
5 [报告]
发表于 2006-05-16 11:07 |只看该作者
原帖由 sunyone 于 2006-5-16 10:41 发表
l    Tell tar to complain if it cannot resolve all of the links
                to the files being saved.  If l is not specified, no error
                messages are printed.



请教老大,语句应该怎样写啊,谢谢

论坛徽章:
0
6 [报告]
发表于 2006-05-16 15:33 |只看该作者
跑了几次tar的测试,发现tar运行时总是已a(rchive)<空格>开头的,不知道是否所有的平台都是这样
如:
tar cvf 2.tar ./  
a ./a.tar 20 blocks
a ./1.tar 20 blocks
a ./a.a 0 blocks
a ./a.b 0 blocks
a ./a.c 0 blocks
a ./2.tar 40 blocks
./2.tar: file changed size  只有在本行有错误时,开头位置才没有a  a指archive

[ 本帖最后由 zhanghome 于 2006-5-16 15:48 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-05-16 15:52 |只看该作者
原帖由 sunyone 于 2006-5-16 09:31 发表
tar cvf asdf.tar asdf/ && echo success || echo error


理论上应该是先运算tar cvf asdf.tar asdf/  && echo success吧?
那么tar cvf asdf.tar asdf/  执行成功就输出 success
而tar cvf asdf.tar asdf/ 不成功的话tar cvf asdf.tar asdf/  && echo success应该为假,所以输出  error 。
用的很巧,没试过!

论坛徽章:
0
8 [报告]
发表于 2006-05-16 16:06 |只看该作者
原帖由 zhanghome 于 2006-5-16 15:33 发表
跑了几次tar的测试,发现tar运行时总是已a(rchive)<空格>开头的,不知道是否所有的平台都是这样
如:
tar cvf 2.tar ./  
a ./a.tar 20 blocks
a ./1.tar 20 blocks
a ./a.a 0 blocks
a ./a.b 0 bloc ...


hp、solaris 、aix是
linux不是

# tar -cvf 11.tar *  && echo success || echo error
a 11.tar 0 blocks
a aa.perl 2 blocks
a io.sh 1 blocks
a qq.sh 1 blocks
a test.txt 1 blocks
success
#

论坛徽章:
0
9 [报告]
发表于 2006-05-17 09:42 |只看该作者
多谢sunyone ^_^,你的方法比较通用,但我测试了一下极端的情况,就是在tar时磁盘满了,就没有办法了,且命令就停在那里了,这个能够解决吗?就是说,即便磁盘满了,命令就直接退出
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP