Chinaunix

标题: 请教:怎样用代码判断tar一个包没有错误?谢谢 [打印本页]

作者: zhanghome    时间: 2006-05-16 09:10
标题: 请教:怎样用代码判断tar一个包没有错误?谢谢
tar cvf asdf.tar asdf/ 2>asdf.log

使用如上代码可以将tar时产生的日志写到asdf.log中,但怎样使用代码判断asdf.log中没有错误呢?
作者: sunyone    时间: 2006-05-16 09:31
tar cvf asdf.tar asdf/ && echo success || echo error
作者: zhanghome    时间: 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 编辑 ]
作者: sunyone    时间: 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.
作者: zhanghome    时间: 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.



请教老大,语句应该怎样写啊,谢谢
作者: zhanghome    时间: 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 编辑 ]
作者: hwh5240    时间: 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 。
用的很巧,没试过!
作者: sunyone    时间: 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
#
作者: zhanghome    时间: 2006-05-17 09:42
多谢sunyone ^_^,你的方法比较通用,但我测试了一下极端的情况,就是在tar时磁盘满了,就没有办法了,且命令就停在那里了,这个能够解决吗?就是说,即便磁盘满了,命令就直接退出




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2