一、遍歷文件夾所有文件
#!/bin/bash
# 遍歷文件夾下所有文件
function list_files(){
# 獲取傳入參數的文件路徑
local file_path=$1
#遍歷文件夾
for file in ${file_path}/*
do
#如果是目錄則遞歸調用函數,否則打印文件路徑
if [ -d $file ]
then
list_files $file
else
echo $file
fi
done
}
#調用函數,傳入文件夾路徑
list_files "/path/to/folder"
遍歷文件夾下所有文件,是shell中經常使用的一個操作。該操作是通過遞歸方式實現,對於目錄進行遞歸(調用自身),對於文件則直接輸出文件路徑。遞歸遍歷目錄下所有文件,類似於樹的數據結構遍歷操作。
二、Shell獲取目錄下所有文件名
#!/bin/bash
# 獲取目錄下所有文件名到數組中
function get_files(){
local file_path=$1
local file_list=($(ls ${file_path}))
echo ${file_list[@]}
}
#調用函數,傳入文件夾路徑
get_files "/path/to/folder"
獲取目錄下所有文件名是shell開發中實現某些操作的先決條件之一,例如文件拷貝、文件壓縮等等。該操作是通過調用ls命令,將返回結果賦值給數組變量,實現的。
三、Shell遍歷所有目錄和文件
#!/bin/bash
# 遍歷文件夾下所有文件和目錄
function list_files(){
# 獲取傳入參數的文件路徑
local file_path=$1
#遍歷文件夾
for file in ${file_path}/*
do
#如果是目錄則遞歸調用函數,否則打印文件路徑
if [ -d $file ]
then
echo "directory: "$file
list_files $file
else
echo "file: "$file
fi
done
}
#調用函數,傳入文件夾路徑
list_files "/path/to/folder"
遍歷所有目錄和文件可以用於查找某些特定的文件或者目錄,例如查找某些重要文件是否存在於某個目錄下。該操作與遍歷文件夾下所有文件類似,只不過遞歸調用的時候會打印目錄的信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279443.html
微信掃一掃
支付寶掃一掃