校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 使用Bash Shell對目錄中的文件實現遞歸式拷貝

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

熱門標簽:地圖標注輻射圖案 聯通電話機器人怎么接 申請公司400電話要注意什么 寧波智能外呼系統公司 安裝外呼系統費用 曲阜400電話辦理 電銷機器人 劍魚 奧維互動地圖標注參數 衛星地圖標注地名

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

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

    項目需求示例圖如下:

實現
    項目需求有了,知道設計到遞歸,代碼就很好寫了。這里給出一個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 

您可能感興趣的文章:
  • 使用bash shell刪除目錄中的特定文件的3種方法
  • 使用Bash Shell獲取文件名和目錄名的簡單方法
  • Shell腳本bash: ./t.sh:/bin/bash^M:損壞的解釋器: 沒有那個文件或目錄
  • 判斷文件是否存在的shell腳本代碼
  • Shell逐行讀取文件的4種方法
  • shell去掉文件中空行(空白行)的方法詳解
  • shell腳本中執行時提示“沒有那個文件或目錄”的解決辦法
  • shell按行讀取文件的3種方法
  • Shell腳本統計文件行數的8種方法
  • 使用Bash Shell檢查文件是否存在的方法

標簽:大興安嶺 安康 仙桃 三門峽 江西 上饒 大慶 遵義

巨人網絡通訊聲明:本文標題《使用Bash Shell對目錄中的文件實現遞歸式拷貝》,本文關鍵詞  使用,Bash,Shell,對,目錄,中的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Bash Shell對目錄中的文件實現遞歸式拷貝》相關的同類信息!
  • 本頁收集關于使用Bash Shell對目錄中的文件實現遞歸式拷貝的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 体育| 武强县| 资兴市| 闻喜县| 裕民县| 长海县| 绵阳市| 黎平县| 滕州市| 仪征市| 丹棱县| 威宁| 临清市| 黔南| 阳城县| 台山市| 三河市| 襄汾县| 安远县| 晋州市| 资中县| 天门市| 白玉县| 华宁县| 中阳县| 贺兰县| 吴堡县| 互助| 连云港市| 东方市| 泾川县| 木里| 普格县| 邓州市| 汶上县| 繁昌县| 三河市| 临江市| 安陆市| 通辽市| 偃师市|