国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

如何使用Shell遍歷目錄及其子目錄中的所有文件?

網(wǎng)友解答: 看題目應(yīng)該是Linux下的shell吧,我就以Linux為例來(lái)解答此題目了。使用Shell遍歷目錄及其子目錄中的所有文件,老規(guī)矩,先問(wèn)題分解:獲取某目錄及該目錄中的子目錄的所

網(wǎng)友解答:

看題目應(yīng)該是Linux下的shell吧,我就以Linux為例來(lái)解答此題目了。使用Shell遍歷目錄及其子目錄中的所有文件,老規(guī)矩,先問(wèn)題分解:

獲取某目錄及該目錄中的子目錄的所有文件列表

循環(huán)對(duì)獲取的文件列表進(jìn)行處理

隆重介紹一下find命令,獲取文件列表

find本來(lái)是用來(lái)遞歸查找文件的,當(dāng)我們把關(guān)鍵字參數(shù)去掉之后,就可以實(shí)現(xiàn)遍歷的功能。當(dāng)設(shè)置遞歸的深度為2時(shí),就可以滿足我們解答本題的需求。為了演示,我先設(shè)置了一個(gè)目錄man,下面有一些文件和目錄:

我們來(lái)執(zhí)行下面的命令,獲取目錄man和它下面的文件,以及子目錄下的文件:

find man -maxdepth 2

這句命令的含義是在man目錄下進(jìn)行深度為2的遍歷查找文件,因?yàn)闆](méi)有設(shè)置查找條件,所以每遇到一個(gè)文件都滿足查找條件,文件名就會(huì)被打印出來(lái):

寫(xiě)出循環(huán),實(shí)現(xiàn)完整的功能

使用for循環(huán),遍歷find語(yǔ)句提供的列表:

也可以寫(xiě)成一行在終端直接運(yùn)行:

for i in $(find man -maxdepth 2); do echo $i; done

大功告成!

補(bǔ)充一點(diǎn),如果不需要遍歷到man和ager這兩個(gè)目錄的話,在find語(yǔ)句中加一個(gè)參數(shù)-type f,就只剩下文件了。

for i in $(find man -maxdepth 2 -type f); do echo $i; done

總結(jié)一下,Linux下使用終端操作時(shí),遇到這種需求一定要先進(jìn)行問(wèn)題分解,不要忙于找現(xiàn)成的命令,根本還是要熟悉find的運(yùn)用,可以事半功倍。得到文件列表之后,再進(jìn)行遍歷的操作。

如果我的回答對(duì)你有點(diǎn)價(jià)值,請(qǐng)莫忘點(diǎn)贊加關(guān)注,謝謝!歡迎在評(píng)論區(qū)發(fā)表各種意見(jiàn)!

網(wǎng)友解答:

新建一個(gè)shell文件

輸入以下代碼

執(zhí)行指令

標(biāo)簽: