[bash] 查找替换文件

2023-05-16

[bash] 查找替换文件

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

#!/bin/bash
#2015-11-23
echo -e "说明:\n将文件放在/app/tmp_class目录下,保证该目录下没有其他文件\n备份目录在/app/tmp下以时间命名\n\n"
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
posted on 2016-05-22 16:50 bvac 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/bvac/p/5517117.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[bash] 查找替换文件 的相关文章

  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • 保存和恢复陷阱状态?管理多个陷阱处理程序的简单方法?

    有什么好的方法可以覆盖bash陷阱处理程序不会永久破坏可能已设置或尚未设置的现有处理程序 动态管理任意陷阱例程链怎么样 有没有办法保存陷阱处理程序的当前状态 以便以后可以恢复 在 Bash 中保存和恢复陷阱处理程序状态 我将提交以下堆栈实现
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • POSIX SH 构建循环变量,其元素包含空格

    这是我需要的代码 bin sh x1 a1 a2 x2 b1 b2 list SOMETHING for x in list do echo x done 以及我想要的输出 a1 a2 b1 b2 问题是 应该做什么SOMETHING是 我
  • apt-get install tzdata 非交互式

    当我尝试 apt get install y tzdata 将显示用于选择时区的命令行选项 我试图在脚本中使用它来进行一些设置 如何在没有用户输入的情况下使 apt get 运行 我知道重新配置 tzdata 我可以做 echo Ameri
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • powershell stdin 管道和重定向

    你好 我一直在制作一个小的跨平台脚 本 我可以将其卷曲并通过管道传输到bash和Powershell中 基本思想是服务器向解释器发送一个命令 然后它给出一个命令将所有输出重定向到标准输出 bash 中的一个例子是 some commands
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 从 csv 文件中删除特定列,保持输出上的相同结构[重复]

    这个问题在这里已经有答案了 我想删除第 3 列并在输出文件中保留相同的结构 输入文件 12 10 10 10 10 1 12 23 1 45 6 7 11 2 33 45 1 2 1 2 34 5 6 I tried awk F 3 fil
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 如何查找所有以句号结尾的单词?

    我有一个包含许多以 a 结尾的单词的文件 其中大部分是缩写 例如 etc p s 如何输出一个仅显示一次所有这些单词的列表 所有单词前面都有一个空格 因此可以使用该空格来查找单词的开头 没有一个单词出现在该行的开头 文件中没有句子 因此句点
  • 获取变量的名称作为输入并使用该名称更改变量

    我从脚本用户那里获取变量的名称作为第一个参数 并将该变量的值回显到控制台 bin bash variablename 1 echo The value of variablename is variablename 这太棒了 我无法开始工作
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样

随机推荐

  • 服务器开机必须要按f1才能进系统,每次开机都要按F1才能进入系统的解决方法...

    有用户反应自己的电脑每次开机都要按F1才能进入系统 xff0c 这一般是由于BIOS设置不正确造成的 xff0c 按F1是为了加载BIOS默认设置 xff0c 下面就教大家如何解决这个问题 1 首先在提示界面按Delete键进入BIOS设置
  • kali安装与配置

    闲来没事 xff0c 把kali虚拟机重新装到了电脑上 xff0c 记录下步骤 1 在kali官网 xff08 https www kali org downloads xff09 直接下载的 ova虚拟机 xff0c 因为之前从官网下载的
  • linux查看进程umask值,在Linux中设置UMASK值

    umask值用于设置用户在创建文件时的默认权限 xff0c 当我们在系统中创建目录或文件时 xff0c 目录或文件所具有的默认权限就是由umask值决定的 对于root用户 xff0c 系统默认的umask值是0022 xff1b 对于普通
  • C语言strrev()函数:字符串逆置(倒序、逆序)

    头文件 xff1a include lt string h gt strrev 函数将字符串逆置 xff0c 其原型为 xff1a char strrev char str 参数说明 str为要逆置的字符串 strrev 将str所指的字符
  • linux 配置smb 免密码,centos7安装使用samba服务器免密码登录简单配置

    samba简单安装和无密码分享 1 先安装服务器和客户端 root 64 localhost yum y install samba samba client 安装服务器和客户端 root 64 localhost rpm qi samba
  • 双系统linux触摸板不能用,windows系统与ubuntu双系统导致笔记本触摸板失灵的解决办法(非输入代码)...

    先说一下我现在的笔记本使用的系统 xff0c windows10 64位 xff0b ubuntu14 04 64位 这几天把ubuntu装好后本来毫无问题的 xff0c 用的飞起 xff5e 可是昨天不知道什么原因 xff0c 触摸板突然
  • centos npm install 超时报错

    使用npm install 时报错 root 64 localhost helloworld npm install forever g npm WARN registry Using stale data from https regis
  • 数据分析关键代码汇总

    头部引入 import pandas as pd import numpy as np import matplotlib pyplot as plt matplotlib inline import seaborn as sns impo
  • OpenStack入门篇(二十二)之实现阿里云VPC的SDN网络

    1 修改 etc neutron neutron conf配置 root 64 linux node1 vim etc neutron neutron conf defalut core plugin 61 ml2 service plug
  • 不想说再见~北京

    从事软件开发工作已经第九个年头 慢慢觉得人生就像编程 xff0c 需要不停的面对各种需求通过各种分析对比找到最优技术方案 以往的每次技术问题 xff0c 都能通过各种途径找到最优方案 但是人生很多时候不能尽善尽美 这次的需求有点棘手 xff
  • windows 下 putty 登陆服务器 显示matlab图形界面

    本文需要下载 putty exe 和 pscp exe xff1a http www chiark greenend org uk sgtatham putty download html Xming 主程序和字体 https source
  • 软件工程概论--课后作业1

    作业概况 xff1a 1 网站系统开发所需技术 1 基础内容 网页设计概述 网站设计制作的基本流程 色彩搭配在网站中的应用 网站用户界面的设计 网站广告的设计 网站中表格的使用 网站中层的应用 框架网站的制作 模板网站的制作 使用行为和Ja
  • VNC-Server安装及配置

    一 什么是VNC VNC Virtual Network Computer 是虚拟网络计算机的缩写 VNC 是一款优秀的远程控制工具软件 xff0c 由著名的 AT amp T 的欧洲研究实验室开发的 VNC 是在基于 UNIX 和 Lin
  • (转)Windows 内存管理

    1 xff0e Windows的内存结构 Windows 系统中的每个进程都被赋予它自己的虚拟地址空间 对于 32 位进程来说 xff0c 这个地址空间是 4GB xff0c 因为 32 位指针可以拥有从 0x00000000 至 0xFF
  • Kali系统换源

    安装好kali系统后要选择更换软件源 xff0c 尽量选择国内源 xff0c 更新速度快 在终端中输入 gedit etc apt sources list 打开源列表文件 xff0c 将以下源选择加入其中 xff0c 原来的内容要删除 k
  • SerialPort IOException Workaround in C#

    ref http zachsaw blogspot com 2010 07 serialport ioexception workaround in c html As promised I 39 ve whipped up a quick
  • LVM-逻辑卷常用命令和示意图

    功能 命令物理卷管理卷组管理逻辑卷管理扫描pvscanvgscanlvscan建立pvcreatevgcreatelvcreate显示pvdisplayvgdisplaylvdisplay删除pvremovevgremovelvremove
  • 卷基于快照进行恢复

    基于P版本 xff0c 对卷基于快照进行恢复的源码分析 1 特性描述 在pike版本中 xff0c openstack官网增加了一个新特性 xff0c Cinder volume revert to snapshot xff0c 该特性支持
  • 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)

    D题 xff1a 马的管辖 二进制枚举方案 判断该方案是否全部能被覆盖 xff0c 将最优方案存下来并进行剪枝 include lt iostream gt include lt cstring gt include lt cstdio g
  • [bash] 查找替换文件

    bash 查找替换文件 写这个脚本也加深了对 bash 数组的理解 bin bash 2015 11 23 echo e 34 说明 n将文件放在 app tmp class目录下 xff0c 保证该目录下没有其他文件 n备份目录在 app