liunx上用sed命令提取bin文件中的二进制文件格式错误。

使用cat命令把install.sh脚本和apckages.tar.gz文件合并成一个bin为后缀的可执行文件,命令如下catinstall.shapckages.tar... 使用cat命令把install.sh脚本和apckages.tar.gz文件合并成一个bin为后缀的可执行文件,命令如下cat install.sh apckages.tar.gz > install.bin然后执行 install.bin其中install.sh 有段脚本是提取打包后install.bin文件中的apckages.tar.gz如下当执行解压apckages.tar.gz的时候出现错误。于是我把apckages.tar.gz 文件拉到windows上进行解压 提示数据错误于是我想问题的关键还是出在提取这个包文件的时候 展开
 我来答
cnbubble
2017-06-20 · TA获得超过2611个赞
知道大有可为答主
回答量:1990
采纳率:83%
帮助的人:841万
展开全部

我通过以下测试,发现思路基本没有问题:

一个文本文件a,最后一行是exit 0,一个二进制文件(用系统中的cat测试)

cat a /bin/cat >b
sed -n '1,/^exit 0$/!p' b >c
chmod +x c
./c a

通过以上命令,依次将文本文件a和二进制文件cat合并到b,用sed又把cat的二进制内容提取到 了c文件,将c文件变为可执行,c的功能和cat一样。

检测错误:

(1)确保在合并之前你的压缩文件解压正常。

(2)确保前面的文本最后一行是exit 0,并且后面没有空格或空行。确保文本文件中间没有exit 0【可以用sed -n '1,/^exit 0$/p' install.bin >c,对比c文件和原来的文本文件install.sh文件大小、内容一模一样。或者检查解析出来的压缩文件和原来的压缩文件大小是否相同】

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式