linux shell 递归拷贝文件

         最近在做项目的时候,使用到了FTP,文件服务器部署在Linux操作系统下,项目部署的时候分为测试系统和正式系统,由于有一部分数据在测试系统FTP上需要将该数据向正式系统FTP上进行对应的数据迁移,本应该是将对应的数据进行合并的,也就是他们的目录结构是一样的,然当时由于进行数据迁移的时候并不知道 ,只是将正式系统上的数据在对应的目录给从命名了,将测试系统的数据给迁移过来了。然正式系统的数据对应就访问不到了,然后客户就打电话来了,查了半天才知道。这么多的目录要合并也不是好办法,涉及到的目录文件也不少,其实就是将修改过名字的目录下的所有文件拷贝到现在对应的目录下,在Linux下使用cp  带上一些参数就可以了,应该没问题。

也就是类似于下图所示的目录结构

linux shell 递归拷贝文件_第1张图片















于是琢磨着写了个Linux  shell 脚本完成了该功能 ,代码如下


#!/bin/bash
function copypath(){
  regpath="image20150314_bak"
  replace="image"
  for file in `ls $1`
  do
     if [ -d $1"/"$file ]
     then
       copypath $1"/"$file
      else
        srcpath=$1"/"$file
        destpath=${srcpath//$regpath/$replace}
        echo $destpath
        # excute something ccmmand,for example:cp $srcpath $destpath
	cp $srcpath $destpath
     fi
  done
}
INIT_PATH="/bjzm/bjzm/image20150314_bak"
copypath $INIT_PATH
 


你可能感兴趣的:(Linux,递归拷贝文件,shell)