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目录下的。