Linux shell 遍歷資料夾檔案和目錄的指令碼

2021-09-25 05:55:37 字數 952 閱讀 2657

寫乙個遍歷資料夾目錄和檔案的指令碼,預設搜尋檔案,加上 -d 引數搜尋目錄,可以設定搜尋深度,引數設定模仿find 命令,當然效率沒有find命令高,日常使用還是使用find命令,此指令碼僅做參考

#! /bin/bash

function isnumber

is_dir=0

#判斷是否是搜尋目錄

for p in $@

do [ "$p" == "-d" ] && is_dir=1 && break

done

while [ $# -gt 0 ]

do #這裡刪除不必要的引數

[ "$1" == "-d" ] && shift 1 && continue

if [ "$1" != "-maxdepth" ]; then

new_para[$]="$1"

shift 1

else

shift 1

if [ $# -eq 0 ] || ! isnumber $1; then

echo "引數錯誤 -maxdepth = $1 ,請檢查 !!!" && exit 1

fimaxdepth="$1" && shift 1

fidone

#如果是搜尋目錄,則不會顯示被搜尋的當前目錄

function findall

findall $ $

指令碼名字命名為display.sh ,執行chmod a+x display.sh 

例如:  ./display.sh ./ -d -maxdepth 2  此命令等同於 find ./ -maxdepth 2 -type d ,執行的結果一致,除了find命令會顯示引數傳入的目錄本身,此指令碼不會顯示引數傳入的目錄,只顯示所有的子目錄

如果搜尋所有的檔案 ./display.sh ./

如果搜尋所有的資料夾 ./display.sh ./ -d

遍歷資料夾

function search path string filename string ball boolean false string varsearchrec tsearchrec begin if findfirst path faanyfile,searchrec 0 then begin...

資料夾遍歷

c 遍歷指定資料夾中的所有檔案 directoryinfo thefolder new directoryinfo folderfullname 遍歷一層資料夾 foreach directoryinfo nextfolder in thefolder.getdirectories 遍歷多層資料夾 ...

遍歷資料夾

使用files類的newdirectorystream方法完成這一功能 path path paths.get d test try catch ioexception e files提供了乙個walkfiletree方法,可以用於遍歷整個資料夾,並且針對每個檔案可以進行特定的處理工作。public...