写shell脚本:将linux下子目录及子目录文件复制到定点目录下,使用readline命令

如图所示为源目录文件,将每个目录下最后的文件,比如这里很多的PHP文件,提取到指定的目录/app/update/openapi/下,并且创建截取掉/app/tlinx2/... 如图所示为源目录文件,将每个目录下最后的文件,比如这里很多的PHP文件,提取到指定的目录/app/update/openapi/下,并且创建截取掉/app/tlinx2/openapi/之后剩下的目录,比如第一条就创建为:/app/update/openapi/Openapp/App1/Controller/OrderController.class.php,并且复制过来对应的目录文件。其实就是不知道截取中间目录路径然后怎么在指定目录下创建相同名称的目录。(当然一条一条做是可以,这里要利用到readline操作比较不会) 展开
 我来答
hixtao
2017-05-16 · TA获得超过1099个赞
知道小有建树答主
回答量:468
采纳率:85%
帮助的人:325万
展开全部

你这不就是把目录A目录下的内容复制到B目录下的问题吗?有必要那么复杂?

cp -r   /app/tlinx2/openapi/*   /app/update/openapi/
更多追问追答
追问
有那么简单我还用写脚本?是指定目录下的指定文件,通配符*指所有文件。而且要读取txt,我要是改了txt,脚本也要能适用,再说这么文件也有同名的,复制在同目录下肯定会覆盖,所以还要新建目录。这是需求,不是我能改的
追答
#!/bin/bash
folderA="app/tlinx2/openapi"
folderB="app/update/openapi"
list1="./filelist.txt"

while read line1
do

echo filename is "$line1"

mdipath1=$(echo "$line1" | sed -n -r 's@'"$folderA/(.*)/.*"'@\1@p')
echo middle path is "$mdipath1"

newfolder1="$folderB/""$mdipath1"
mkdir -p "$newfolder1"

done < "$list1"


上面的脚本,解决——“其实就是不知道截取中间目录路径然后怎么在指定目录下创建相同名称的目录”

请你把 #!/bin/bash 后面三行的文件名,改为你系统上对应文件的路径。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式