• [bash] 查找替换文件


    写这个脚本也加深了对 bash 数组的理解。

    #!/bin/bash
    #2015-11-23
    echo -e "说明:
    将文件放在/app/tmp_class目录下,保证该目录下没有其他文件
    备份目录在/app/tmp下以时间命名
    
    "
    echo "1./app/tomcat/"
    echo "2./app/tomcat_8081/"
    echo "3./app/tomcat_thirdparty/"
    read -p "选择替换哪一个tomcat下的文件?   " num
    case $num in
        1)
            files=($(find /app/tmp_class/ -type f))
            for file in "${files[@]}"
            do
                file_name=$(basename "$file")
                file_dir=`dirname $file`
                dst_dir=($(find /app/tomcat/webapps -type f -name "${file_name}" -exec dirname {} ;))
                if [ ${#dst_dir[@]} -eq 1 ];then
                    rsync -a -b --backup-dir=/app/tmp/$(date +%m%d_%H_%M) $file ${dst_dir[0]}
                elif [ ${#dst_dir[@]} -gt 1 ];then
                    echo $file"在以下目录中都存在,请手工 cp -a"
                    echo ${dst_dir[@]}
                else
                    echo $file"不存在,不知道怎么替换!"
                    echo "请手动cp"
                fi
            done
        ;;
        2)
            files=($(find /app/tmp_class/ -type f))
            for file in "${files[@]}"
            do
                file_name=$(basename "$file")
                file_dir=`dirname $file`
                dst_dir=($(find /app/tomcat_8081/webapps -type f -name "${file_name}" -exec dirname {} ;))
                if [ ${#dst_dir[@]} -eq 1 ];then
                    rsync -a -b --backup-dir=/app/tmp/$(date +%m%d_%H_%M) $file ${dst_dir[0]}
                elif [ ${#dst_dir[@]} -gt 1 ];then
                    echo $file"在以下目录中都存在,请手工 cp -a"
                    echo ${dst_dir[@]}
                else
                    echo $file"不存在,不知道怎么替换!"
                    echo "请手动cp"
                fi
            done
        ;;
        3)
            files=($(find /app/tmp_class/ -type f))
            for file in "${files[@]}"
            do
                file_name=$(basename "$file")
                file_dir=`dirname $file`
                dst_dir=($(find /app/tomcat_thirdparty/webapps -type f -name "${file_name}" -exec dirname {} ;))
                if [ ${#dst_dir[@]} -eq 1 ];then
                    rsync -a -b --backup-dir=/app/tmp/$(date +%m%d_%H_%M) $file ${dst_dir[0]}
                elif [ ${#dst_dir[@]} -gt 1 ];then
                    echo $file"在以下目录中都存在,请手工 cp -a"
                    echo ${dst_dir[@]}
                else
                    echo $file"不存在,不知道怎么替换!"
                    echo "请手动cp"
                fi
            done
        ;;
        *)
            echo "error number"
    esac
    
  • 相关阅读:
    考研笔记-物理层协议
    考研笔记-数据链路层和局域网
    考研笔记-网络层和路由
    考研笔记-运输层服务和工作原理
    考研笔记-应用层
    考研笔记-数据通信技术基础
    考研笔记-计算机网络协议和体系结构
    计算机网络复习(一)
    “百度杯”CTF比赛 十月场_GetFlag(验证码爆破+注入+绝对路径文件下载)
    “技术产品”面向市场的表达方法思辨——BY Me
  • 原文地址:https://www.cnblogs.com/bvac/p/5517117.html
Copyright © 2020-2023  润新知