Shell遍歷目錄下所有文件的詳細闡述

一、遍歷文件夾所有文件

#!/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-tw/n/279443.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:04
下一篇 2024-12-20 15:04

相關推薦

發表回復

登錄後才能評論