首页 > 系统服务 > 详细

linux下用于二进制程序及其依赖库的移植的脚本

时间:2015-09-06 18:07:14      阅读:150      评论:0      收藏:0      [点我收藏+]
#!/bin/bash
#
#指定移植目录 DEST
=/mnt/sysroot
#依赖库文件拷贝 libcp() { LIBPATH
=${1%/*} [ ! -d $DEST$LIBPATH ] && mkdir -p $DEST$LIBPATH [ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo "copy lib $1 finished." } #程序本身的拷贝 bincp() { CMDPATH=${1%/*} [ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH [ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH for LIB in `ldd $1 | grep -o "/.*lib\(64\)\{0,1\}/[^[:space:]]\{1,\}"`; do libcp $LIB done } #定义传递参数 read -p "Your command: " CMD until [ $CMD == ‘q‘ ]; do ! which $CMD &> /dev/null && echo "Wrong command" && read -p "Input again:" CMD && continue COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]\{1,\}"` bincp $COMMAND echo "copy $COMMAND finished." read -p "Continue: " CMD done

 

#!/bin/bash  
#  
target=/mnt/sysroot  
clearCmd() {  
if which $cmd &> /dev/null; then  
cmdPath=`which --skip-alias $cmd`  
else  
echo "No such command"  
return 5  
fi  
}  
cmdCopy() {  
cmdDir=`dirname $1`  
[ -d ${target}${cmdDir} ] || mkdir -p ${target}${cmdDir}  
[ -f ${target}${1} ] || cp $1 ${target}${cmdDir}  
}  
libCopy() {  
for lib in `ldd $1 | grep -o "/[^[:space:]]\{1,\}"`; do  
libDir=`dirname $lib`  
[ -d ${target}${libDir} ] || mkdir -p ${target}${libDir}  
[ -f ${target}${lib} ] || cp $lib ${target}${libDir}  
done  
}  
while true; do  
read -p "Enter a command: " cmd  
if [ "$cmd" == quit ] ;then  
echo "quit"  
exit 0  
fi  
clearCmd $cmd  
[ $? -eq 5 ] && continue  
cmdCopy $cmdPath  
libCopy $cmdPath  
done  

 

linux下用于二进制程序及其依赖库的移植的脚本

原文:http://www.cnblogs.com/sysk/p/4786475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!