目录拷贝--bash实现

刚开始看shell,写了一个bash的小程序,功能是将原目录下的所有子目录都复制到目的目录,但是不复制里面的文件。能够用于某些场合:比如需要原来的文件目录结构,但是里面的内容却是需要更新的。下面的代码都是在我自己的电脑上测试的,路径稍微改动下就OK!

 
#!/bin/sh function usage(){ echo "Input such as : " echo "$0 source_dir destion_dir" } #输入的参数不少于2个 if [ $# -ne 2 ] then usage exit 1 fi #判断参数1是不是目录 if [ ! -d $1 ] then echo "$1 is not a directory " usage exit 1 fi #判断参数2是不是目录 if [ ! -d $2 ] then echo "$2 is not a directory " usage exit 1 fi #保存到变量 srcdir=$1 desdir=$2 echo "source directory :" echo "------------------" #查找原目录下的所有目录,用tee双向输出 find $srcdir/* -type d | /usr/bin/tee /tmp/src.txt #采用sed进行正则匹配,将原目录替换新目录 cat /tmp/src.txt | sed "s,^$srcdir,$desdir,g" > /tmp/des.txt #创建目录 for subdir in $(cat /tmp/des.txt) do mkdir $subdir done #删除临时文件 rm -f /tmp/des.txt rm -f /tmp/src.txt

标签:Linux, Shell

评论已关闭