复制原目录下的子目录到目的目录

#!/bin/bash

#cpdir.sh

#此脚本用于将源目录下的子目录全部复制到目的目录中,不复制源目录中的文件,确保目的目录中的目录是空的

 

#脚本用法函数

function usage()

{

echo "cpdir.sh 源目录 目的目录"

}

 

#判断是否为两个参数,否则提示脚本用法

if [ $# -ne 2 ]

then

{

usage

exit 0

}

if

 

srcdir=$1

desdir=$2

#判断源目录$srcdir是否为目录,否则提示报错信息和用法

if [ ! -d $srcdir ]

then

{

usage

echo "错误:源目录$srcdir不是目录"

exit

}

fi

 

#判断目的目录$desdir是否为目录,否则提示报错信息和用法

if [ ! -d $desdir ]

then

{

usage

echo "错误:目的目录$desdir不是目的目录"

exit

}

fi

processid=$$;

 

#查找源目录下所有的子目录,输出并保存到/tmp/srcdir_进程号.txt文件中

echo "源目录下$scrdir所有子目录"

echo "========================"

find $scrdir/* -type -d |tee /tmp/srcdir_tmp_$processid.txt

sed "s/^$srcdir/$desdir/g" /tmp/srcdir_tmp_$processid.txt > /tmp/srcdir_$processid.txt

 

#在目的目录下建立空子目录

rm -rf $desdir/*

for subdir in `cat /tmp/srcdir_$processid.txt`

do

{

mkdir $subdir

}

done

echo

echo "目标目录下$desdir所有的子目录"

echo "========================="

find $desdir/* -type d | tee /tmp/desdir_$processid.txt

#比较在目的目录下建立空子目录后的差异

echo

echo "比较目标目录和源目录的差异"

echo "=========================="

diff /tmp/desdir_$processid.txt /tmp/srcdir_$processid.txt

rm -f /tmp/desdir_$processid.txt

rm -f /tmp/srcdir_$processid.txt

rm -f /tmp/srcdir_tmp_$processid.txt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值