为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

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

2018-04-15 3页 doc 13KB 41阅读

用户头像

is_954223

暂无简介

举报
Linux下把文件夹复制到所有同名文件夹的脚本Linux下把文件夹复制到所有同名文件夹的脚本 Linux教程 需求:复制文件夹到Linux目录下,覆盖该Linux目录下所有同名文件夹 目标:Linux下,执行本脚本,输入文件夹名,即可批量复制覆盖。 使用说明: 先把本脚本文件和要复制的文件夹移到将要覆盖的Linux目录,之后执行本脚本即可。 执行命令: ./tcopy.sh 1.如果提示-bash: ./tcopy.sh: Permission denied,那要先赋给其权限: chmod +x tcopy.sh 再执行./tcopy.sh即可。 2...
Linux下把文件夹复制到所有同名文件夹的脚本
Linux下把文件夹复制到所有同名文件夹的脚本 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/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]} 复制文件 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教程
/
本文档为【Linux下把文件夹复制到所有同名文件夹的脚本】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索