
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上进行解压 提示数据错误于是我想问题的关键还是出在提取这个包文件的时候
展开
1个回答
展开全部
我通过以下测试,发现思路基本没有问题:
一个文本文件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文件大小、内容一模一样。或者检查解析出来的压缩文件和原来的压缩文件大小是否相同】
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询