婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用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對目錄中的文件實現遞歸式拷貝的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 宁河县| 天气| 宿州市| 宜黄县| 义马市| 保康县| 扎鲁特旗| 江陵县| 武胜县| 余干县| 阳新县| 绥滨县| 嘉黎县| 饶河县| 留坝县| 邵阳市| 达拉特旗| 广河县| 蓬安县| 泽州县| 香港| 平利县| 盐池县| 眉山市| 佛教| 扎兰屯市| 大埔区| 循化| 车致| 雷山县| 北川| 宣城市| 佛坪县| 天祝| 连城县| 宜都市| 仙桃市| 灵石县| 长治市| 维西| 上犹县|