主頁 > 知識(shí)庫(kù) > 使用Bash Shell對(duì)目錄中的文件實(shí)現(xiàn)遞歸式拷貝

使用Bash Shell對(duì)目錄中的文件實(shí)現(xiàn)遞歸式拷貝

熱門標(biāo)簽:地圖標(biāo)注輻射圖案 聯(lián)通電話機(jī)器人怎么接 申請(qǐng)公司400電話要注意什么 寧波智能外呼系統(tǒng)公司 安裝外呼系統(tǒng)費(fèi)用 曲阜400電話辦理 電銷機(jī)器人 劍魚 奧維互動(dòng)地圖標(biāo)注參數(shù) 衛(wèi)星地圖標(biāo)注地名

前言
    今天工作中遇到了一個(gè)問題,如果將目錄A中的文件拷貝到目錄B中(前提目錄B沒有該文件),并保持文件在目錄A的結(jié)構(gòu)。項(xiàng)目重點(diǎn)如下:

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

    項(xiàng)目需求示例圖如下:

實(shí)現(xiàn)
    項(xiàng)目需求有了,知道設(shè)計(jì)到遞歸,代碼就很好寫了。這里給出一個(gè)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不存在該目錄,則先創(chuàng)建目錄 
        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獲取文件名和目錄名的簡(jiǎn)單方法
  • Shell腳本bash: ./t.sh:/bin/bash^M:損壞的解釋器: 沒有那個(gè)文件或目錄
  • 判斷文件是否存在的shell腳本代碼
  • Shell逐行讀取文件的4種方法
  • shell去掉文件中空行(空白行)的方法詳解
  • shell腳本中執(zhí)行時(shí)提示“沒有那個(gè)文件或目錄”的解決辦法
  • shell按行讀取文件的3種方法
  • Shell腳本統(tǒng)計(jì)文件行數(shù)的8種方法
  • 使用Bash Shell檢查文件是否存在的方法

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Bash Shell對(duì)目錄中的文件實(shí)現(xiàn)遞歸式拷貝》,本文關(guān)鍵詞  使用,Bash,Shell,對(duì),目錄,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Bash Shell對(duì)目錄中的文件實(shí)現(xiàn)遞歸式拷貝》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用Bash Shell對(duì)目錄中的文件實(shí)現(xiàn)遞歸式拷貝的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章