写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操作比较不会)
展开
1个回答
展开全部
你这不就是把目录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 后面三行的文件名,改为你系统上对应文件的路径。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询