目录拷贝–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


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值