Bash Shell 递归实现目录中文件拷贝
来源:互联网 发布:淘宝网商品怎么分期购 编辑:程序博客网 时间:2024/06/10 11:16
前言
今天工作中遇到了一个问题,如果将目录A中的文件拷贝到目录B中(前提目录B没有该文件),并保持文件在目录A的结构。项目重点如下:
- 需要在目录B中保持文件在目录A中的结构。假设A目录文件 A/test/1.txt,转移到目录B中应该是B/test/1.txt。同时还需要考虑目录B中是否存在test目录,多级目录就要考虑递归了。(还好,bash shell里写个目录递归遍历还是比较简单的。)
- 需要考虑A中文件是否在B中已经存在同名文件,如果存在,则不需要拷贝。
项目需求示例图如下:
实现
项目需求有了,知道设计到递归,代码就很好写了。这里给出一个demo示例,供大家参考。
#!/bin/bashfunction recursive_copy_file(){ dirlist=$(ls $1) for name in ${dirlist[*]} do if [ -f $1/$name ]; then # 如果是文件,并且$2不存在该文件,则直接copy if [ ! -f $2/$name ]; then cp $1/$name $2/$name fi elif [ -d $1/$name ]; then # 如果是目录,并且$2不存在该目录,则先创建目录 if [ ! -d $2/$name ]; then mkdir -p $2/$name fi # 递归拷贝 recursive_copy_file $1/$name $2/$name fi done}source_dir="/tmp/test/system"dest_dir="/tmp/test/systemback"recursive_copy_file $source_dir $dest_dir
0 0
- Bash Shell 递归实现目录中文件拷贝
- Python 和 bash shell脚本(python和shell, python中文件操作, python中目录操作)
- 目录拷贝–bash实现
- BASH命令和SHELL脚本总结(19)递归地拷贝目录结构
- IOS中文件目录递归
- shell递归创建目录和文件
- Shell遍历目录及文件夹中文件
- bash shell 遍历指定目录下文件 iconv 编码转换
- shell 递归函数---循环拷贝文件到指定目录
- PB中文件拷贝
- java中文件拷贝
- Bash Shell遍历目录
- bash 遍历目录下文件
- ios中文件从Bundle目录拷贝到Document目录下面的正确方法
- 代码示例:递归遍历文件夹实现目录拷贝
- Qt实现遍历文件夹和文件目录(递归)
- Qt 实现遍历文件夹和文件目录(递归)
- Qt实现遍历文件夹和文件目录(递归)
- 手斧Linux – 从LFS到Funtoo (4)
- C++编写基于IE内核的浏览器
- 运算放大器电路设计知识你注意到了吗
- 【OPENCV】图像的预处理(灰度图、二值化、字符矫正(旋转))
- tips---adb
- Bash Shell 递归实现目录中文件拷贝
- 【IOS编程 02】加法器
- WCF入门(五)——单向通知
- Android GPS技术之LocationManager
- 手斧Linux – 从LFS到Funtoo (5)
- C#播放wave提示音的类
- 【DP】HDU-3008 Warcraft
- python 网络发送接收数据代码
- 二叉树面试题