Linux下把文件夹复制到所有同名文件夹的脚本
2015-08-17 12:31
246 查看
需求:复制文件夹到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,最后再改回。
读取用户输入文件名,用通配符把全文件夹放于数组
循环结构把原文件夹下所有文件放入所有数组。
代码:
保存文件为tcopy.sh
代码说明:
name2为原文件夹目录下所有文件
改回~/.bashrc文件
风险项:
原~/.bashrc文件未必是alias cp='cp -i'
如果使用本脚本后,出现复制文件每次都询问是否覆盖即:cp: overwrite,
请手动修改~/.bashrc文件,在alias cp一行的前方加上#
目标: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进程间通信——使用匿名管道
- centos 7下拨号上网 及 firefox安装flash后遇到的问题
- linux下的文件结构
- linux下IDE环境:eclipse
- 【Linux学习】epoll详解
- linux 下如何给火狐安装flash插件(常用命令cd cp tar 实践)
- Linux内核参数
- Linux内存占用情况分析
- CentOS7.0 安装JAVA周围环境
- linux系统 硬链接和软链接
- centos php 5.3升级到 php5.4版本
- Linux编程基础——GDB(设置断点)
- kali Linux使用蓝牙
- 记一次Linux物理服务器迁移总结
- 记一次Linux物理服务器迁移总结
- linux rtc简介与测试
- linux ln 命令使用参数详解(ln -s 软链接)
- Linux系统中MySQL数据库操作命令
- linux下的webserver BOA及CGIC库的使用指南(转帖)
- linux 命令