IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:广度优先遍历

共 1 篇相关文章

IT 累计浏览 3,638

bash遍历目录

作者从实际需求出发,整理了两套用纯Bash遍历目录树的方法:深度优先(DFS)和广度优先(BFS)。文章坦言,对于大多数简单操作,`find`命令组合其他工具足矣;但当需要严格控制遍历顺序,或者执行的操作逻辑比较复杂时,手动实现遍历就很有必要。 文中的两个函数提供了清晰的模板。作者特别指出一个实用的细节:循环中使用`` `ls "$dir"` ``而非通配符`"$dir"/*`,是为了避免当目录为空时,循环体需要额外判断`dentry`是否存在,让代码更简洁。BFS版本使用队列结构,DFS版本则用栈来模拟递归。 更巧妙的是,作者通过将回调函数作为参数传入,让遍历逻辑与具体任务解耦。示例中展示了如何用它们实现一个统计C/C++项目代码行数的脚本。文章追溯了这些代码的起源——从早年为FVWM桌面窗口管理器生成文件树菜单,到后来因ext3迁移ext4后修复文件权限而反复打磨,这些脚本在解决具体问题的过程中不断演进。对于有类似定制化需求的运维或开发人员,这份经过实践检验的代码片段值得参考。