如何解决有没有一种方法可以递归地搜索嵌套的子目录并在每个子目录上执行命令?
我找不到涉及嵌套子目录的问题。假设我有这样的目录大纲:
dir1
|--dir2
| |--a
| |--b
| |--c
|--dir3
| |--dir4
| |--file1
| |--file2
| |--file3
| |--dir5
| |--test1
| |--test2
| |--test3
|--dir6
| |--fileA
| |--dir7
| |--fileB
说我必须在这些目录的每个目录和每个子目录中执行一系列命令。这是我需要执行的功能的概述:
-
如果当前工作目录中有一个CD,请
- 将CD放入一个子目录
- 检查新目录中是否有子目录
- 如果没有,执行功能,否则,将CD插入下一个子目录
- 如果没有更多子目录可导航,并且功能已完成,则CD返回上一个目录并找到下一个子目录,然后重复此过程,直到
dir1
下的每个子目录都执行了该功能为止。
有人可以为我提供可以执行此操作的Bash脚本功能吗?我是一个完整的初学者,这是我工作中给我带来最大麻烦的部分。预先感谢您的帮助!
解决方法
递归函数,是否就是您要寻找的?
#!/bin/bash
function loop {
for dir in */; do # */ to matach only directories
if [ -d "$dir" ]; then # check if directory has further directoies
(cd "$dir" && pwd && loop); # replace pwd with the command to be executed in the directory
fi
done
}
loop
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。