shell 實用腳本2

腳本功能 拷貝文件夾 及 子文件夾內文件  到 對應的 文件結構下 ,且拷貝前先進行備份spa

#!/bin/sh
#create by lizr 2016-01-15
#腳本功能 
#覆蓋文件前先備份
cfsuffix=$(date +%Y%m%d);    #備份文件後綴
if [ $# -lt 2 ]; then                        #輸入參數說明
  echo "error...need args"
  echo "eg:path1 path2"
  echo "path1 files backup and copy to path2"
  exit 1
else
    path1=$1;
    path2=$2;
  if [ -d "$path1" -a -d "$path2" ]; then
    cd $path1;
    find . -type d | while read dir
    do
        tpath1=${path1}${dir#.};
        tpath2=${path2}${dir#.}
        ls $tpath1 | awk -F'[ ]' '{print $1}' | while read filename
        do
            sfile=$tpath1'/'$filename;    #源文件
            pfile=$tpath2'/'$filename; #需備份文件 
            cfile=$tpath2'/'$filename'.'$cfsuffix;    #備份後文件
            if [ -f $sfile ]; then
                if [ -f $pfile ]; then
                    cp $pfile $cfile &&  a=1 || a=0;
                    if [ $a -eq 1 ]; then
                        echo $filename "backup success!";
                        cp $sfile $tpath2;
                    else 
                        echo $filename "backup error!"
                    fi
                else
                    echo $pfile "not find!";
                    echo "cp "$sfile $tpath2;
                fi
            fi
        done
    done
  else
    echo "error...args path not find!";
  fi
fi
相關文章
相關標籤/搜索