一、Shell遍歷文件夾所有文件
#!/bin/bash for file in `ls /path/to/folder` do echo $file done
該腳本使用for循環遍歷文件夾下所有文件,並使用echo命令輸出文件名。其中,/path/to/folder為要遍歷的文件夾路徑。
與for語句配合使用的通配符有:
- *
- ? (表示任意一個字元)
- [a-z] (表示任意一個小寫字母)
- [A-Z] (表示任意一個大寫字母)
二、Shell循環遍歷文件夾
#!/bin/bash for folder in `ls -l /path/to/folder | grep "^d" | awk '{print $NF}'` do echo $folder done
該腳本使用for循環遍歷文件夾,並篩選出文件夾,並使用echo命令輸出文件夾名。其中,/path/to/folder為要遍歷的文件夾路徑。
該腳本中使用了管道符和awk命令,其中,ls -l /path/to/folder是列出文件夾的詳細信息,grep “^d”是從中篩選出開頭為d的行,即文件夾,awk ‘{print $NF}’是輸出每行的最後一列,即文件夾名。
三、Shell讀取文件夾下所有文件
#!/bin/bash files=`ls /path/to/folder` for file in $files do content=`cat $file` echo "File: $file" echo "Content: $content" done
該腳本使用ls命令讀取文件夾下所有文件,在for循環中讀取文件內容並輸出。其中,/path/to/folder為要遍歷的文件夾路徑。
該腳本中使用了反引號將ls命令的輸出結果賦值給files變數,並使用cat命令獲取文件內容,輸出文件名與內容。
四、Shell腳本遍歷文件夾
#!/bin/bash folder="/path/to/folder" function list_files(){ for file in `ls $1` do if [ -d $1"/"$file ] then list_files $1"/"$file else echo $1"/"$file fi done } list_files $folder
該腳本使用自定義函數遞歸遍歷文件夾下所有文件,並使用echo命令輸出文件路徑。其中,/path/to/folder為要遍歷的文件夾路徑。
在該腳本中,使用if語句判斷是否為文件夾,如果是則遞歸調用list_files函數,否則輸出文件路徑。
五、Shell遍歷文件夾並提取文件名字
#!/bin/bash folder="/path/to/folder" files=`ls $folder` for file in $files do filename=`basename $file` echo "Filename: $filename" done
該腳本使用ls命令讀取文件夾下所有文件,在for循環中使用basename命令提取文件名並輸出。其中,/path/to/folder為要遍歷的文件夾路徑。
basename命令可以從文件路徑中提取出文件名。
六、Shell遞歸遍歷文件夾
#!/bin/bash folder="/path/to/folder" for file in `find $folder -type f` do echo "File: $file" done
該腳本使用find命令遞歸遍歷文件夾下所有文件,並使用echo命令輸出文件路徑。其中,/path/to/folder為要遍歷的文件夾路徑。
find命令是一種非常靈活的查找文件的工具,可以根據各種條件查找文件。
七、Shell文件夾下所有文件循環
#!/bin/bash folder="/path/to/folder" cd $folder for file in * do echo "File: $file" done
該腳本使用cd命令進入文件夾,使用for循環遍歷文件夾下所有文件並輸出文件名。其中,/path/to/folder為要遍歷的文件夾路徑。
在for循環中,*通配符表示匹配所有的文件和文件夾。
八、Linux Shell遍歷文件夾
#!/bin/bash folder="/path/to/folder" for file in $(ls $folder) do echo "File: $folder/$file" done
該腳本使用ls命令讀取文件夾下所有文件,在for循環中輸出文件路徑。其中,/path/to/folder為要遍歷的文件夾路徑。
在for循環中,$(ls $folder)表示將ls命令的輸出結果作為for循環的參數。
九、Shell腳本遍歷文件夾並刪除文件
#!/bin/bash folder="/path/to/folder" for file in `find $folder -type f` do rm -f $file done
該腳本使用find命令遞歸遍歷文件夾下所有文件,並使用rm命令刪除文件。其中,/path/to/folder為要遍歷的文件夾路徑。
在for循環中,`find $folder -type f`表示返回所有的文件路徑,-type參數指定只返回普通文件。
小結
Shell腳本可以通過多種方式遍歷文件夾下所有文件,包括for循環、遞歸、find命令等。其中,find命令是一種非常靈活的查找文件的工具,可以根據各種條件查找文件。
原創文章,作者:GCVW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143851.html