您的位置:首页 > 运维架构 > Shell

BASH命令和SHELL脚本总结(19)递归地拷贝目录结构

2013-08-12 17:01 645 查看
SRC_DIR_HEAD="/home/Adobe/test_place"

TAR_DIR_HEAD="/home/Adobe/test_place2"

如果在$SRC_DIR_HEAD处有一堆文件夹和它下面的子文件夹,需求是把它的目录结构复制到$TAR_DIR_HEAD处。如果$SRC_DIR_HEAD文件夹下的文件数量少,大小也比较合适,那么可以直接cp $SRC_DIR_HEAD $TAR_DIR_HEAD,然后再把$TAR_DIR_HEAD中的文件删除掉,只留下目录结构。但是可能$SRC_DIR_HEAD中的文件非常大,于是需要一个办法只复制目录结构,可以递归复制,如下:

#!/bin/bash
function ergodic(){
    for file in ` ls $1`
    do
        if [ -d $1"/"$file ] 
        then
              cd $2
              mkdir -p ."/"$file
              ergodic $1"/"$file $TAR_DIR_HEAD"/"$file
        fi
    done
}
SRC_DIR_HEAD="/home/Adobe/test_place"
TAR_DIR_HEAD="/home/Adobe/test_place2"
mkdir -p $TAR_DIR_HEAD
cd $TAR_DIR_HEAD
ergodic $SRC_DIR_HEAD $TAR_DIR_HEAD
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: