要在Bash中实现递归循环搜索文件,可以使用递归函数和find命令。下面是一个示例代码:
#!/bin/bash
# 递归搜索文件的函数
search_files() {
local directory=$1
local pattern=$2
# 遍历目录中的所有文件和文件夹
for file in "$directory"/*; do
if [[ -f "$file" ]]; then
# 如果是文件,则检查是否匹配模式
if [[ "$file" == *"$pattern"* ]]; then
echo "找到文件: $file"
fi
elif [[ -d "$file" ]]; then
# 如果是文件夹,则递归调用搜索函数
search_files "$file" "$pattern"
fi
done
}
# 调用搜索函数并传入要搜索的目录和文件模式
search_files "/path/to/directory" ".txt"
在这个示例中,我们定义了一个名为search_files
的递归函数,它接受两个参数:directory
和pattern
。函数首先遍历给定目录中的所有文件和文件夹。对于每个文件,它检查是否是一个普通文件,并且是否匹配给定的模式。如果是,则打印出文件路径。对于每个文件夹,它递归地调用自身,并将文件夹路径和模式作为参数传递。
最后,我们调用search_files
函数,并传入要搜索的目录路径和文件模式。在这个示例中,我们搜索/path/to/directory
目录中的所有.txt
文件。你可以根据自己的需求修改这些参数。