js06金沙官网登录-js06.com-欢迎您

来自 计算机 2019-10-09 16:42 的文章
当前位置: js06金沙官网登录-js06.com-欢迎您 > 计算机 > 正文

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

需要:复制文件夹到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/ialias 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]}

复制文件

sed -i "/#alias cp/ialias 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一行的火线加上#

本文永世更新链接地址:http://www.linuxidc.com/Linux/2015-08/121850.htm

金沙官网登录 1

本文由js06金沙官网登录-js06.com-欢迎您发布于计算机,转载请注明出处:Linux下把文件夹复制到所有同名文件夹的脚本

关键词: