Shell遍歷文件夾下所有文件

一、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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GCVW的頭像GCVW
上一篇 2024-10-24 15:26
下一篇 2024-10-24 15:26

相關推薦

發表回復

登錄後才能評論