今天在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.youkuaiyun.com/gangyanliang/article/details/8226637
本文记录了在Linux-arm设备上遇到的tar命令解压缩问题,由于Ubuntu和BuzyBox中tar命令格式不同导致的invalid tarmagic错误。问题在于Ubuntu中使用了'-z'参数进行gzip压缩,而BuzyBox不支持该参数。解决方案是确保压缩和解压缩命令的一致性,即在BuzyBox中使用tar-xvf命令解压不带'-z'参数的.tar文件。此外,还提到了shell脚本中#!/bin/bash在Linux-arm设备上需改为#!/bin/sh才能运行。
3981

被折叠的 条评论
为什么被折叠?



