shell编程练习

A,B两个目录比较子目录名是否相同,有相同的则用B的覆盖A的,但先要备份A的到C目录

#! /bin/bash

# arg num must be 3
if [ $# -ne 3 ]; then
    echo "usage: $0 olddir newdir backdir"
    exit -1
fi

# arg1 arg2 arg3 all must be directory
if [ ! -d $1 ]; then
    echo "$1 is not a dir"
    exit -1
fi

if [ ! -d $2 ]; then
    echo "$2 is not a dir"
    exit -1
fi

if [ ! -d $3 ]; then
    echo "$3 is not a dir"
    exit -1
fi

#define dir variable
OLDDIR=$1
NEWDIR=$2
BACKDIR=$3

#define log varible
CURRENT_DATE=`date ""+%Y%m%d`
LOGDIR="log"
TODAYLOG="$LOGDIR/${CURRENT_DATE}.log"


#if logdir is not exist, create it
if [ ! -d $LOGDIR ]; then
    mkdir $LOGDIR
fi

#if today log file is not exist, create it
if [ ! -e $TODAYLOG ]; then
    touch $TODATLOG
fi

# test dir and back
for i in `ls $OLDDIR`
do
    for j in `ls $NEWDIR`
    do
    if [ $i -eq $j ]; then
        `mv -f $OLDDIR/$i $BACKDIR`
        `cp -rf $NEWDIR/$i $OLDDIR`
        echo "mv -f $OLDDIR/$i $BACKDIR" >> $TODAYLOG
        echo "cp -rf $NEWDIR/$i $OLDDIR" >> $TODAYLOG
    fi
    done
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值