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

Shell腳本實現(xiàn)從文件夾中遞歸復(fù)制文件

 更新時間:2015年02月09日 09:34:03   投稿:junjie  
這篇文章主要介紹了Shell腳本實現(xiàn)從文件夾中遞歸復(fù)制文件,本文腳本實現(xiàn)從十層左右的文件夾中復(fù)制所有文件到一目錄中,需要的朋友可以參考下

需求

前兩天碰到需要在十層左右的文件夾中提取文件的需求,于是寫了此腳本。

如下面這樣的文件結(jié)構(gòu):

復(fù)制代碼 代碼如下:

    dir1
    ├── a
    │   ├── b
    │   │   └── file1
    │   └── file2
    ├── c
    │   └── d
    │       ├── e
    │       │   └── file4
    │       └── file3
    └── file5

我們需要將其中的file1~file5提取出來放到另一個文件夾中。

腳本

腳本getfilefromdir.sh如下:

復(fù)制代碼 代碼如下:

#!/bin/bash
#desc: get file from directory
#example: sh getfilefromdir.sh A B

INIT_PATH=${1%/}
SAVE_PATH=${2%/}

function checksavepath() {
    if [ -d $SAVE_PATH ]
    then
        rm -rf $SAVE_PATH
    fi

    mkdir ${SAVE_PATH}
    touch $SAVE_PATH".log"
}

function getfilefromdir(){
    for file in ` ls $1`
    do
        if [ -d $1"/"$file ]
        then
            getfilefromdir $1"/"$file
        else
            local path="$1/$file"
            local name=$file
            if [ ! -f $SAVE_PATH"/"$name ]
            then
                echo "cp ${path} to ${SAVE_PATH}/${name}"
                cp ${path} "${SAVE_PATH}/${name}"
            else
                echo "${path} file already exists"
                echo "${path}" >> $SAVE_PATH".log" 2>&1
            fi
        fi
    done
}

checksavepath

for sfol in ${INIT_PATH}
do
    getfilefromdir ${sfol}
done

運行

復(fù)制代碼 代碼如下:

sh getfilefromdir.sh dir1/ dir2

第一個參數(shù)是源文件夾,第二個是目地文件夾(不需要提前創(chuàng)建)。

如果有同名文件,會存在dir2.log中

結(jié)果為:

復(fù)制代碼 代碼如下:

dir2
├── file1
├── file2
├── file3
├── file4
└── file5

相關(guān)文章

  • shell進(jìn)度條追蹤指令執(zhí)行時間的場景分析

    shell進(jìn)度條追蹤指令執(zhí)行時間的場景分析

    這篇文章主要介紹了shell進(jìn)度條如何追蹤指令執(zhí)行時間,本文中的進(jìn)度條可以應(yīng)用于大部分場景。不用修改進(jìn)度條函數(shù)的任何代碼,就可以直接使用,特別適合那些可預(yù)估指令執(zhí)行時間的場景,需要的朋友可以參考下
    2022-06-06
  • Linux終端命令行的常用快捷鍵詳解

    Linux終端命令行的常用快捷鍵詳解

    下面小編就為大家?guī)硪黄狶inux終端命令行的常用快捷鍵詳解。小編覺的挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 復(fù)制 Windows cmd 窗口命令行的信息方法

    復(fù)制 Windows cmd 窗口命令行的信息方法

    下面小編就為大家?guī)硪黄獜?fù)制 Windows cmd 窗口命令行的信息方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • shell命令返回值判斷的方法實現(xiàn)

    shell命令返回值判斷的方法實現(xiàn)

    本文主要介紹了shell命令返回值判斷的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • linux中批量修改文件名的腳本代碼

    linux中批量修改文件名的腳本代碼

    linux中批量修改文件名的腳本代碼,主要是使用了rename,結(jié)合shell,喜歡的朋友可以參考下
    2013-01-01
  • linux 中vim的用法講解

    linux 中vim的用法講解

    Vim 是 Linux 系統(tǒng)上的最著名的文本/代碼編輯器,也是早年的 Vi 編輯器的加強(qiáng)版,而 gVim 則是其 Windows 版。這篇文章主要介紹了linux 中vim的用法講解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Linux更新Python版本及修改python默認(rèn)版本的方法

    Linux更新Python版本及修改python默認(rèn)版本的方法

    很多情況下拿到的服務(wù)器python版本很低,需要自己動手更改默認(rèn)python版本,但是有好多朋友都被這個問題難倒了,接下來,通過本篇文章給大家介紹linux更新Python版本及修改默認(rèn)版本的方法,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Shell獲取進(jìn)程PID的實現(xiàn)

    Shell獲取進(jìn)程PID的實現(xiàn)

    本文主要介紹了Shell獲取進(jìn)程PID的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • linux下非root用戶運行tomcat

    linux下非root用戶運行tomcat

    這篇文章主要介紹了linux下非root用戶運行tomcat ,需要的朋友可以參考下
    2017-12-12
  • Shell實現(xiàn)猜數(shù)字游戲

    Shell實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了Shell實現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論