Linux下 tar命令(工具)的移植,源码下载、详细移植步骤
tar命令是Linux系统下的解压缩命令,本文介绍其详细移植步骤。在使用busybox移植文件系统时,busybox一般有自带的,但可能出现有些版本比较旧,无法解压缩tar.gzx Extractt List$如上,busybox自带的tar命令无法识别到z选项,而busybox是原厂编译好提供的,所以考虑自己移植tar命令。
一、概述
二、tar 命令源码下载
三、tar 源码移植步骤
一、概述
tar
命令是Linux系统下的解压缩命令,在使用busybox
移植文件系统时,busybox
一般有自带的,但可能出现有些版本比较旧,无法解压缩tar.gz
文件,前几天工作中就遇到这种情况:
$ tar zxf /config/data.tar.gz -C /root/config
tar: invalid option -- 'z'
BusyBox v1.31.0 (2021-03-04 14:00:21 CST) multi-call binary.
Usage: tar c|x|t [-hvokO] [-f TARFILE] [-C DIR] [-T FILE] [-X FILE] [--exclude PATTERN]... [FILE]...
Create, extract, or list files from a tar file
c Create
x Extract
t List
-f FILE Name of TARFILE ('-' for stdin/out)
-C DIR Change to DIR before operation
-v Verbose
-O Extract to stdout
-o Don't restore user:group
-k Don't replace existing files
-h Follow symlinks
-T FILE File with names to include
-X FILE File with glob patterns to exclude
--exclude PATTERN Glob pattern to exclude
$
如上,busybox
自带的tar
命令无法识别到z
选项,而busybox
是原厂编译好提供的,所以考虑自己移植tar
命令。
二、tar
命令源码下载
这里要下载的是GNU Tar
,https://www.gnu.org/software/tar/ 有它的详细的介绍。
源码下载地址是:ftp://ftp.gnu.org/gnu/tar/,我这里下载的是tar-1.27.1.tar.gz
,因为我使用的Ubuntu
是自带的tar命令也是1.27.1
的。
三、tar
源码移植步骤
tar-1.27.1.tar.gz
的移植比较顺利,没出现奇怪的问题,步骤就是解压源码、配置、编译
;
把tar-1.27.1.tar.gz
复制到Ubuntu的一个目录下,执行如下命令:
tar zxvf tar-1.27.1.tar.gz
cd tar-1.27.1
mkdir result
CC=csky-abiv2-linux-gcc ./configure --prefix=`pwd`/result --host=arm-linux
make clean && make && make install
CC=csky-abiv2-linux-gcc
是指定交叉编译的gcc
工具,上面的几个命令执行完成后,在result/bin
目录会生成一个可执行文件tar
,将它拷贝到板子里就可以啦。我是拷贝到板子的/root/tar
路径,然后删除旧的链接,建立新的就可以正常使用tar
命令了
有帮助的话,麻烦点赞支持一下 *_^
更多推荐
所有评论(0)