Shell遞迴遍歷目錄下檔案

2021-08-27 12:11:50 字數 821 閱讀 7494

遍歷linux某目錄下的所有檔案

#!/bin/bash

# $1是執行指令碼時,輸入的第乙個引數,這裡指的是使用者希望搜尋的目錄

# 下面的**是對目錄進行判斷,如果為空則使用指令碼所在的目錄;否則,搜尋使用者輸入的目錄

if [[ -z "$1" ]] || [[ ! -d "$1" ]]; then

echo "the directory is empty or not exist!"

echo "it will use the current directory."

nowdir=$(pwd)

else

nowdir=$(cd $1; pwd)

fiecho "$nowdir"

# 遞迴函式的實現

function searchcfile()

') for cfilename in $cfilelist

doecho $cfilename

done

# 遍歷當前目錄,當判斷其為目錄時,則進入該目錄遞迴呼叫該函式;

dirlist=$(ls)

for dirname in $dirlist      

doif [[ -d "$dirname" ]];then

cd $dirname

#searchcfile 這裡有bug,跳轉到根目錄了

#這裡把當前的目錄作為引數輸入

searchcfile $(pwd)

cd ..

fi;done;

}# 呼叫上述遞迴呼叫函式

searchcfile $nowdir

windows 遍歷 特定目錄下檔案

參考自 很多類似 都有 wchar char 等型別問題 s 問題。一下 在 windows10 vs2017上親測可用 cmd test.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include using namespa...

遞迴遍歷目錄下的檔案

關於目錄檔案的分析 lib src vim lib,src,都是目錄檔案,而vim是普通檔案 opendir 返回乙個dir readdir dir 返回乙個dirent 結構的指標 struct dirent long d ino inode number 索引節點號 off t d off of...

shell遍歷目錄下所有檔案

filelist ls home work file for file in filelist do echo file done 一定要切記filelist 後邊的那個引號不是單引號,而是tab鍵上邊的那個鍵,或者說是1左邊的那個鍵。否則的話不起作用。唉,自己在上吃虧了好長時間。汗!如果ls後面的...