美文网首页
linux下把文件夹复制到所有同名文件夹脚本

linux下把文件夹复制到所有同名文件夹脚本

作者: Hackart | 来源:发表于2017-06-07 12:55 被阅读0次

需求:复制文件夹到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,最后再改回。 读取用户输入文件名,用通配符把全文件夹放于数组 循环结构把原文件夹下所有文件放入所有数组。

代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#!/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 Linux学习,http:// linux.it.net.cn

代码说明:

?

1

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

把~/.bashrc文件中的alias cp一行给注释掉

?

1

array=($name*)

使用通配符把所有文件夹放入数组

?

1

name2="$name/*"

name2为原文件夹目录下所有文件

?

1

${#array}

获取数组长度

?

1

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

复制文件

?

1

sed -i "/#alias cp/i/alias cp='cp -i'" ~/.bashrc >/dev/null sed -i '/#alias cp/d' ~/.bashrc >/dev/null

Linux学习,http:// linux.it.net.cn

?

1

改回~/.bashrc文件

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

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

相关文章

  • linux下把文件夹复制到所有同名文件夹脚本

    需求:复制文件夹到Linux目录下,覆盖该Linux目录下所有同名文件夹 目标:Linux下,执行本脚本,输入文件...

  • linux指令篇

    复制 将一个文件夹下的所有内容复制到另一个文件夹下 将一个文件夹复制到另一个文件夹下 删除一个文件夹及其下面的所有...

  • TBSS处理流程

    TBSS处理 首先建立一个文件夹FA_01,将所有要处理的FA图像复制到这个文件夹下。依次做如下处理: 1.该脚本...

  • 命令行

    mv 把文件夹拖进去 ----------把拖入的这个文件夹复制到当前文件夹 ln -s../Cellar/car...

  • Max脚本做成工具栏按钮,便捷启动脚本

    把脚本复制到安装目录下的Scripts文件夹内 在max上按F11呼唤出脚本编辑器 复制下方代码,按照脚本名称修改...

  • 2020-10-04Linux-(一些补充1)

    1.Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身 rm -rf * 2.linux查看文件前几行...

  • 把文件批量导入同名文件夹

    具体实例:通过shell script脚本文件,把JPG文件批量导入同名文件夹 操作系统:elementary O...

  • 原型给客户预览

    使用说明: 1、清空Demo文件夹; 2、将生成的原型Html文件复制到Demo文件夹中。 3、将此文件夹下所有内...

  • 常用LINUX指令总结

    复制cp将一个目录下所有文件(不包括文件夹),复制到另一个文件夹中cp 源文件夹地址// 目标文件夹地址(注意...

  • Linux命令命令笔记

    Linux 命令学习 文件相关 ls命令 查看当前路径下所有的文件与文件夹 rmdir 删除空的文件夹 rm 删除...

网友评论

      本文标题:linux下把文件夹复制到所有同名文件夹脚本

      本文链接:https://www.haomeiwen.com/subject/xjwofxtx.html