linux - 如何修复此 Bash 函数以从指定路径开始并递归列出其子目录以及这些目录的子目录等

标签 linux bash shell scripting

我正在尝试编写一个脚本来搜索目录及其子目录等,以查找与给定正则表达式匹配的文件。因此,我首先尝试编写一个函数来获取目录和子目录。由于某种原因,它目前似乎只获取指定目录中的第一个子目录。

这是函数:

getDirs() {

cd "$1"
for i in *; do
    if [ -d "$i" ]; then
        echo "dir: $PWD/$i"
        getDirs "$i"
    fi
done
}

getDirs $path

有什么想法可以解决这个问题吗?

最佳答案

尝试使用 执行此操作如果您需要正则表达式来搜索文件名:

regex="YourRegexPattern"
find "$1" -type f -regextype posix-egrep -regex "$regex"

如果你想获取所有目录/子目录:

find . -type d

关于linux - 如何修复此 Bash 函数以从指定路径开始并递归列出其子目录以及这些目录的子目录等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13672263/

相关文章:

linux - 在 i.MX6 的 Qt5 OpenGL 测试交叉编译期间发现不兼容的 libc.so.6

linux - 我如何读取超时的 tty 文件?

Bash 脚本在读取循环中未捕获 SIGINT

linux - 顶部 'xterm' : unknown terminal type

php - 为 Apache 而不是 CLI 启用 PHP 扩展

linux - 找不到 Yesod 初始化命令

linux - Linux下获取屏幕供应商和序列号

linux - rm : cannot remove: Permission denied

arrays - 具有双for循环的bash脚本可以访问数组名称

linux - 使用 eval '$cmd' 执行变量将产生错误