欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2015年07月30日 09:58:16   作者:低調(diào)小一  
這篇文章主要介紹了使用Bash Shell對(duì)目錄中的文件實(shí)現(xiàn)遞歸式拷貝,適用于Ubuntu等Debian系的Linux系統(tǒng),需要的朋友可以參考下

前言
    今天工作中遇到了一個(gè)問(wèn)題,如果將目錄A中的文件拷貝到目錄B中(前提目錄B沒(méi)有該文件),并保持文件在目錄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里寫(xiě)個(gè)目錄遞歸遍歷還是比較簡(jiǎn)單的。)
    需要考慮A中文件是否在B中已經(jīng)存在同名文件,如果存在,則不需要拷貝。

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

201573095548233.png (813×599)

實(shí)現(xiàn)
    項(xiàng)目需求有了,知道設(shè)計(jì)到遞歸,代碼就很好寫(xiě)了。這里給出一個(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 

相關(guān)文章

  • 淺析linux下如何用腳本自動(dòng)發(fā)送文本mail郵件

    淺析linux下如何用腳本自動(dòng)發(fā)送文本mail郵件

    這篇文章主要是介紹如何linux下通過(guò)腳本自動(dòng)發(fā)送文本mail郵件,特分享下,方便需要的朋友
    2013-05-05
  • bash 循環(huán)中變量作用范圍的問(wèn)題分析

    bash 循環(huán)中變量作用范圍的問(wèn)題分析

    大家在bash編寫(xiě)中,經(jīng)常需要用到循環(huán),但循環(huán)中變量作用范圍的問(wèn)題有些朋友不是很懂,這里簡(jiǎn)單分享下,方便需要的朋友
    2013-01-01
  • 淺談shell循環(huán)中變量的作用域問(wèn)題

    淺談shell循環(huán)中變量的作用域問(wèn)題

    今天小編就為大家分享一篇淺談shell循環(huán)中變量的作用域問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Shell雙引號(hào)和單引號(hào)有哪些不同

    Shell雙引號(hào)和單引號(hào)有哪些不同

    這篇文章主要介紹了Shell雙引號(hào)和單引號(hào)有哪些不同,幫助大家區(qū)分shell雙引號(hào)和單引號(hào),感興趣的朋友可以了解下
    2020-08-08
  • linux數(shù)據(jù)庫(kù)備份并通過(guò)ftp上傳腳本分享

    linux數(shù)據(jù)庫(kù)備份并通過(guò)ftp上傳腳本分享

    這篇文章主要介紹了linux數(shù)據(jù)庫(kù)備份并通過(guò)ftp上傳腳本,腳本還可以備份網(wǎng)站,需要的朋友可以參考下
    2014-03-03
  • 詳解shell中腳本參數(shù)傳遞的兩種方式

    詳解shell中腳本參數(shù)傳遞的兩種方式

    這篇文章主要介紹了詳解shell中腳本參數(shù)傳遞的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • shell?判斷語(yǔ)句腳本用法解析

    shell?判斷語(yǔ)句腳本用法解析

    這篇文章主要為大家介紹了shell判斷語(yǔ)句腳本用法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 關(guān)于ssh連不上問(wèn)題的解決方法(必看)

    關(guān)于ssh連不上問(wèn)題的解決方法(必看)

    下面小編就為大家?guī)?lái)一篇關(guān)于ssh連不上問(wèn)題的解決方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 獲取站點(diǎn)的各類(lèi)響應(yīng)時(shí)間(dns解析時(shí)間,響應(yīng)時(shí)間,傳輸時(shí)間)

    獲取站點(diǎn)的各類(lèi)響應(yīng)時(shí)間(dns解析時(shí)間,響應(yīng)時(shí)間,傳輸時(shí)間)

    有時(shí)候?yàn)榱藴y(cè)試網(wǎng)絡(luò)情況,需要返回每個(gè)階段的耗時(shí)時(shí)間,比如DNS解析耗時(shí),建立連接所消耗的時(shí)間,從建立連接到準(zhǔn)備傳輸所使用的時(shí)間,從建立連接到傳輸開(kāi)始所使用的時(shí)間,整個(gè)過(guò)程耗時(shí),下載的數(shù)據(jù)量,下載速度,上傳數(shù)據(jù)量,上傳速度等等
    2014-03-03
  • Linux中Shell腳本判斷文件/文件夾是否存在方法

    Linux中Shell腳本判斷文件/文件夾是否存在方法

    很多時(shí)候我們?cè)谧鲞\(yùn)維的時(shí)候,我們需要做一些自動(dòng)化,這時(shí)我們就需要寫(xiě)一些shell腳本,既然要用到shell腳本,就免不了文件操作,這篇文章主要給大家介紹了關(guān)于Linux中Shell腳本判斷文件/文件夾是否存在的相關(guān)資料,需要的朋友可以參考下
    2023-06-06

最新評(píng)論