将不同目录下 文件名相同的文件 复制到另一同名目录的不同文件夹下

PS.我知道这个标题听着很绕口,毕竟自己的语言组织能力不太好

举例来说
我现在想将A目录中所有文件夹下的单一文件copy到B目录中与A目录相对应的所有文件夹下的

再形象点,直接上图
A目录结构B目录结构
在这里插入图片描述

绿色字体是可执行文件,也就是我们要拷贝的文件
我们现在要把A目录下的Makefile文件copy到相对应的

我现在想将A目录中所有文件夹下的Makefile文件copy到B目录文件夹下的Makefile_new

来写一个shall脚本

#!/bin/bash
function copyfiletosave()
{
		#A目录
		
        basedir=/home/user/A

        #B目录  没有则create
        
        savedir=/home/user/B
        if [[ ! -d $savedir ]];then
                mkdir $savedir
        fi
		
		#遍历A
		
        files=$(ls $basedir)
        for file in $files
        do
                if [[ -d $basedir/$file ]];then
                        echo $file
                        
                        #exedir为A目录下 */src/
                        
                        exedir=/home/user/A/$file/src

                        # split string eg:400.perlbench -- 400 perlbench
                        
                        spiltfile=(${file//./ })
                        filenameexes=$(ls $exedir)
                        for Makefile in $filenameexes
                        do
                        
                                #copy file
                                
                                cp $exedir/Makefile $savedir/$file/src/Makefile
                        done
                fi
       done
}
copyfiletosave

执行后就可以看见现在B目录下的Makefile就是A目录下的。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值