需求:拷贝文件夹到Linux文件夹下。覆盖该Linux文件夹下全部同名文件夹
目标:Linux下,运行本脚本。输入目录名。就可以批量复制覆盖。
使用说明:
        先把本脚本文件和要复制的文件夹移到将要覆盖的Linux文件夹,之后运行本脚本就可以。
        运行命令:
             
  ./tcopy.sh
        1.假设提示-bash: ./tcopy.sh: Permission denied,那要先赋给其权限:
             
  chmod +x tcopy.sh
            再运行./tcopy.sh就可以。
        2.觉着麻烦的话 sh tcopy.sh也行。

逻辑说明:
        原系统的cp命令。是cp -i命令。这样运行cp命令是无法自己主动覆盖的。

所以改文件~/.bashrc,最后再改回。

        读取用户输入文件名称,用通配符把全目录放于数组
        循环结构把原目录下全部文件放入全部数组。

代码:
#!/bin/sh
sed -i 's/alias cp/#&/' ~/.bashrc >/dev/null echo "Please input the filename:"
read name
array=($name*)
name2="$name/*" for ((i=1; i<${#array}; i++))
do
cp -r $name2 ${array[$i]}
done sed -i "/#alias cp/i\alias cp='cp -i'" ~/.bashrc >/dev/null
sed -i '/#alias cp/d' ~/.bashrc >/dev/null
保存文件为tcopy.sh

代码说明:

sed -i 's/alias cp/#&/' ~/.bashrc  >/dev/null

把~/.bashrc文件里的alias cp一行给凝视掉

array=($name*)

使用通配符把全部目录放入数组

name2="$name/*"
name2为原文件夹文件夹下全部文件
${#array}

获取数组长度

cp -r $name2 ${array[$i]}

拷贝文件

<pre name="code" class="cpp" style="font-size: 14px; line-height: 21px;">sed -i "/#alias cp/i\alias cp='cp -i'" ~/.bashrc  >/dev/null
sed -i '/#alias cp/d' ~/.bashrc >/dev/null

改回~/.bashrc文件



风险项:
原~/.bashrc文件未必是alias cp='cp -i'

假设使用本脚本后。出现拷贝文件每次都询问是否覆盖即:cp: overwrite。
请手动改动~/.bashrc文件,在alias cp一行的前方加上#

Linux下把目录拷贝到全部同名目录的脚本的更多相关文章

  1. 通过find命令寻找文件并拷贝到一个指定目录方法详解

    有这样的一个需求,需要将一部分符合条件的文件从一个目录拷贝到另一个目录中,可以通过使用find命令从源目录查找到符合条件的文件然后使用cp命令拷贝到目标目录   将通过find命令找到的文件拷贝到一个 ...

  2. 使用scp将文件/目录拷贝到另一台Linux主机上

    如何将一台Linux主机上的文件或目录拷贝到另一台Linux主机上,scp命令可以实现该需求 前提条件:两台Linux主机处于同一网段,可以互相ping通 操作如下: 文件拷贝 ①将本地文件拷贝到远端 ...

  3. Linux 命令 - cp: 拷贝文件和目录

    命令格式 cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY ...

  4. Linux SSh scp使用【远程文件/目录的传输】

    一:Linux ssh scp的简介及作用: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们 ...

  5. linux rpm 安装后 mysql 默认安装目录等信息

    MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件.配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比 ...

  6. Linux 目录详解 树状目录结构图

    1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/ ...

  7. linux工具:快速返回某级父目录--bd

    当我们在linux服务器上切换父目录时,通常使用cd ../../,有几级目录就输入几次"../",如果目录嵌套的过深,就会有点晕菜...因此,本次介绍的这款工具,可以快速的返回指 ...

  8. cmake指定程序输出目录和库文件输出目录和拷贝文件

    概述 本文样式环境: win10+cmake 3.18 本文将介绍使用CMAKE配置项目输出目录和 LIbrary项目的输出目录 本文将介绍 cmake的file函数的基础用法之拷贝文件 重点, 这些 ...

  9. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

随机推荐

  1. SQL Server 行转列,列转行

    一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name , value = ( STUFF(( SELECT ',' + va ...

  2. B - Substrings Sort

    Problem description You are given nn strings. Each string consists of lowercase English letters. Rea ...

  3. Redis hash结构 和常用命令

    Redis 数据结构 -- 哈希 hash 是 一个 String 类型的field 和 value 的映射表 hash 的键值 对在内存中的一种无序的状态 命令 说明 备注 hdel key fie ...

  4. Jquery 获取父页面下指定iframe里的指定元素

    var div1=$("#iframe1",window.parent.document).contents().find("#div1");

  5. 网络开发之使用Web Service和使用WCF服务

    判断是否有可用网络连接可以通过NetworkInterface类中的GetIsNetworkAvailable来实现: bool networkIsAvailable = networkInterfa ...

  6. 1C课程笔记分享_StudyJams_2017

    课程1C 概述 课程1C是创建一个生日贺卡应用的实践课程,所以本篇笔记分享主要记录个人的实践过程,此外分享一些比较零散的知识点. Drawable文件夹 Drawable文件夹是Android项目统一 ...

  7. oracle从入门到精通复习笔记续集之PL/SQL(轻量版)

    复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结 ...

  8. css3基础篇三

    CSS3 文本阴影 在 CSS3 中,text-shadow 可向文本应用阴影. 您能够规定水平阴影.垂直阴影.模糊距离,以及阴影的颜色: 实例 向标题添加阴影: h1 { text-shadow: ...

  9. Python总结1

    时间:24日下午输入:input()输出:print()格式化输出通过某种占位符用于替换字符串中某个位置的字符.占位符:%s:可以替换任意类型%d:可以替换数字类型 需要掌握的#1.strip去左右两 ...

  10. 一个休假申请页对input标签各种属性的用法案例(手机端)

    <%@ page language="java" import="java.util.*" contentType="text/html; ch ...