加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

copy命令及库文件至/mnt/sysroot/目录shell脚本

发布时间:2020-12-15 16:59:07 所属栏目:安全 来源:网络整理
导读:#!/bin/bash##获取目标目录target=/mnt/sysroot#命令copy函数cmndcopy(){#假如命令不存在,return1if!which$1/dev/null;thenreturn1fi#获取命令决定路径cmnd=$(which--skip-alias$1)#获取命令目录名cmndpath=$(dirname$cmnd)#判断命令目录名是否存在,否,则
#!/bin/bash
#

#获取目标目录
target=/mnt/sysroot

#命令copy函数
cmndcopy(){
#假如命令不存在,return1
if!which$1&>/dev/null;then
return1
fi
#获取命令决定路径
cmnd=$(which--skip-alias$1)
#获取命令目录名
cmndpath=$(dirname$cmnd)

#判断命令目录名是否存在,否,则创建
[-d$target/$cmndpath]||mkdir-p$target/$cmndpath

#判断命令是否存在,否,则copy
[-e$target/$cmnd]||cp$cmnd$target/$cmnd
return0
}

#库文件copy函数
libcopy(){
#获取库文件目录名
libpath=$(dirname$1)

#判断库文件目录名是否存在,否,则创建
[-d$target/$libpath]||mkdir-p$target/$libpath

#判断库文件是否存在,否,则copy
[-e$target/$1]||cp$1$target/$1
}

#提示输入要copy的命令,quit可以退出
read-p"Plzenteracommand(quitforquiting):"binary

#循环copy命令,遇到quit字符推出循环
until[$binary=="quit"];do

#调用命令copy函数
cmndcopy$binary

#保存命令copy函数返回值
retval=$?

#如果返回值等于0,则
if[$retval-eq0];then

#获取命令库文件的路径
binary=$(which--skip-alias$binary)

#循环取出库文件路径
forlibin$(ldd$binary|grep-o"/[^[:space:]]*lib[^[:space:]]*");do
#调用库文件copy函数
libcopy$lib
done

#如果返回值不为0,则
else
#提示命令输入错误,并可以重新输入
read-p"$binaryisnotcorrect,Plzenteragain(quitforquiting):"binary
#并提前结束本轮循环
continue
fi

#再次提示输入要copy的命令,quit可以退出
read-p"Plzenteracommand(quitforquiting):"binary
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读