最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言
    今天工作中遇到了一個(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目錄,多級目錄就要考慮遞歸了。(還好,bash shell里寫個(gè)目錄遞歸遍歷還是比較簡單的。)
    需要考慮A中文件是否在B中已經(jīng)存在同名文件,如果存在,則不需要拷貝。

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

201573095548233.png (813×599)

實(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 

相關(guān)文章

  • Shell+Linux命令實(shí)現(xiàn)日志分析

    Shell+Linux命令實(shí)現(xiàn)日志分析

    這篇文章主要介紹了Shell+Linux命令實(shí)現(xiàn)日志分析,本文給出了結(jié)合grep命令、awk命令等實(shí)現(xiàn)了幾個(gè)常用的日志分析統(tǒng)計(jì)長命令,需要的朋友可以參考下
    2014-08-08
  • Git 常用命令整理

    Git 常用命令整理

    本文主要介紹了Git 命令,這里對Git 常用命令進(jìn)行了整理,在開發(fā)項(xiàng)目過程中足夠用了,有需要的小伙伴可以參考下
    2016-07-07
  • shell腳本換行問題實(shí)戰(zhàn)記錄

    shell腳本換行問題實(shí)戰(zhàn)記錄

    換行相信大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于shell腳本換行問題的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Shell中關(guān)于exit 0的那些坑

    Shell中關(guān)于exit 0的那些坑

    在 shell 編程中,需慎用 exit 0,本文主要介紹了Shell中關(guān)于exit 0的那些坑,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Linux chown命令使用示例

    Linux chown命令使用示例

    Linux chown命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令,chown 需要超級用戶 root 的權(quán)限才能執(zhí)行此命令,本文給大家分享Linux chown命令使用示例,感興趣的朋友一起看看吧
    2023-03-03
  • Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用

    Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用

    這篇文章主要介紹了Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux batch命令詳解(在系統(tǒng)不繁忙的時(shí)候執(zhí)行定時(shí)任務(wù))

    Linux batch命令詳解(在系統(tǒng)不繁忙的時(shí)候執(zhí)行定時(shí)任務(wù))

    batch命令 用于在指定時(shí)間,當(dāng)系統(tǒng)不繁忙時(shí)執(zhí)行任務(wù),用法與at相似,這篇文章主要介紹了Linux batch命令(在系統(tǒng)不繁忙的時(shí)候執(zhí)行定時(shí)任務(wù)),需要的朋友可以參考下
    2024-02-02
  • Linux啟動(dòng)與自啟動(dòng)的實(shí)例詳解

    Linux啟動(dòng)與自啟動(dòng)的實(shí)例詳解

    這篇文章主要介紹了Linux啟動(dòng)與自啟動(dòng)的實(shí)例詳解的相關(guān)資料,希望通過本文大家能理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • shell讀取配置文件的方式sed命令詳解

    shell讀取配置文件的方式sed命令詳解

    在編寫啟動(dòng)腳本時(shí),涉及到讀取配置文件,特地記錄下shell腳本讀取啟動(dòng)文件的方式,這篇文章主要介紹了shell讀取配置文件-sed命令,需要的朋友可以參考下
    2023-04-04
  • 關(guān)于使用shell腳本循環(huán)處理文本的問題

    關(guān)于使用shell腳本循環(huán)處理文本的問題

    今天給大家普及關(guān)于使用shell腳本循環(huán)處理文本的問題,其實(shí)操作步驟很簡單,本文通過腳本實(shí)例給大家講解,感興趣的朋友跟隨小編一起看看吧
    2021-06-06

最新評論

扎兰屯市| 河北省| 平原县| 开封县| 青浦区| 河津市| 左贡县| 鱼台县| 沙田区| 弥渡县| 佳木斯市| 怀化市| 黔南| 政和县| 天峨县| 彝良县| 金华市| 武城县| 宜城市| 万宁市| 原阳县| 金乡县| 泸州市| 嘉鱼县| 蚌埠市| 图们市| 鄂伦春自治旗| 长治县| 长春市| 灯塔市| 通化县| 闸北区| 凤翔县| 民权县| 平阳县| 磐安县| 板桥市| 邓州市| 阳原县| 高要市| 集安市|