今天在Linux-arm 设备解压*.tar 压缩文件不成功,一直报错提示invalid tar magic,但是在Ubuntu 上使用tar 压缩、解压缩相同文件并不报错,经查找,后来确定原因并找到解决方法。整个过程及现象、解决方法记录如下:

最先是在Ubuntu上拷贝了几个脚本文件到U盘,把U盘插在示教器(内置BuzyBox工具),运行其中一个脚本提示找不到这个脚本文件,但是ls 明显看得见此文件,后来发现 是shell脚本的符号链接 #!/bin/bash 在此Linux-arm设备上识别不了,改成#!/bin/sh 即可。

某个脚本文件里面有一行解压命令tar -xzvf tpudeploy.bin 来解压压缩文件不成功。后来查看了BuzyBox上tar 命令的使用格式,追踪发现tpudeploy.bin这个文件压缩时用的命令是tar -czvf tpudeploy.bin tpudeploy,解压时在BuzyBox并没有-z这个选项,用 tar -xvf  tpudeploy.bin 解压文件提示错误invalid tar magic。总之就是:压缩文件格式和解压缩文件格式要保持一致。

错误的操作:

Ubuntu压缩:tar -czvf tpudeploy.bin tpudeploy

BuzyBox解压缩:tar -xzvf tpudeploy.bin / tar -xvf tpudeploy.bin

正确做法:

Ubuntu压缩:tar -cvf tpudeploy.bin tpudeploy

BuzyBox解压缩:tar -xvf tpudeploy.bin

不同平台上命令格式有所不同,关于BuzyBox的基本用法详见文章:

http://blog.csdn.net/gangyanliang/article/details/8226637


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐