国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

使用Bash Shell對目錄中的文件實現遞歸式拷貝

2019-10-26 18:46:26
字體:
來源:轉載
供稿:網友

前言
    今天工作中遇到了一個問題,如果將目錄A中的文件拷貝到目錄B中(前提目錄B沒有該文件),并保持文件在目錄A的結構。項目重點如下:

    需要在目錄B中保持文件在目錄A中的結構。假設A目錄文件 A/test/1.txt,轉移到目錄B中應該是B/test/1.txt。同時還需要考慮目錄B中是否存在test目錄,多級目錄就要考慮遞歸了。(還好,bash shell里寫個目錄遞歸遍歷還是比較簡單的。)
    需要考慮A中文件是否在B中已經存在同名文件,如果存在,則不需要拷貝。

    項目需求示例圖如下:

201573095548233.png (813×599)

實現
    項目需求有了,知道設計到遞歸,代碼就很好寫了。這里給出一個demo示例,供大家參考。

  

 #!/bin/bash      function 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 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舒兰市| 嘉荫县| 金川县| 邳州市| 宽甸| 新竹市| 安庆市| 黑山县| 芦山县| 吉木萨尔县| 科尔| 成都市| 寿宁县| 大英县| 黄浦区| 平阳县| 施甸县| 安达市| 巴林左旗| 吉安市| 安图县| 凉山| 凌海市| 东平县| 柳河县| 五华县| 扬中市| 尤溪县| 高碑店市| 新乡县| 文山县| 揭西县| 黑龙江省| 泰州市| 莱阳市| 东平县| 油尖旺区| 邵武市| 离岛区| 阳原县| 陇南市|