濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Shell腳本實(shí)現(xiàn)從文件夾中遞歸復(fù)制文件

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

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

需求

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

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

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

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

我們需要將其中的file1~file5提取出來(lái)放到另一個(gè)文件夾中。

腳本

腳本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

運(yùn)行

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

sh getfilefromdir.sh dir1/ dir2

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

如果有同名文件,會(huì)存在dir2.log中

結(jié)果為:

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell腳本實(shí)現(xiàn)從文件夾中遞歸復(fù)制文件》,本文關(guān)鍵詞  Shell,腳本,實(shí)現(xiàn),從,文件夾,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Shell腳本實(shí)現(xiàn)從文件夾中遞歸復(fù)制文件》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Shell腳本實(shí)現(xiàn)從文件夾中遞歸復(fù)制文件的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    奎屯市| 兴和县| 阳西县| 峨眉山市| 资阳市| 南靖县| 乌兰浩特市| 会宁县| 北海市| 娄烦县| 天峨县| 凤台县| 会泽县| 松江区| 信丰县| 安岳县| 荃湾区| 霸州市| 天台县| 民权县| 沙坪坝区| 昌吉市| 定边县| 龙川县| 长宁区| 连云港市| 中阳县| 体育| 华亭县| 威信县| 厦门市| 泾源县| 浮梁县| 庄浪县| 晋城| 水富县| 石楼县| 绩溪县| 利津县| 望城县| 峨眉山市|