如何在 linux 终端中使用 for-loop & find & if-statement 获取子目录

how to get a sub-directory with for-loop & find & if-statement in linux terminal

给定以下结构:

.
├── a1
│   ├── q
│   ├── w
│   └── e
├── a2
│   ├── q
│   ├── e
│   └── s

我想要一个嵌套的 for 循环并找到必须在 linux 中工作的 $ if 语句。

预期输出是检查子目录是否包含声明数组中的特定字符串后的结构。

我想要这样的代码:

declare -a folderlist=("a1", "a2")
declare -a checklist=("w", "s")

for folder in "${folderlist[@]}";
do
  subfolders=$(ls ./$folder);
  for subfolder in "${subfolders[@]}";

    do 
      if [ $d == "w" -o $d == "s" ]; 
         then echo ./$folder/$subfolder;
      fi;
    done;

done;

我想知道上面这部分:

do 
  if [ $d == "w" -o $d == "s" ]; 
     then echo ./$folder/$subfolder;
  fi;
done;

预期输出:

./a1/w/
./a2/s/

为什么不全部使用 find

# Test directory
$ find .
.
./a1
./a1/e
./a1/q
./a1/w
./a2
./a2/e
./a2/q
./a2/s

# Find sub-directories called `s` and `w`
$ find . -mindepth 2 -type d -name w -or -name s
./a1/w
./a2/s

多级查找

$ find . -mindepth 1 -maxdepth 1 -type d \( -name a1 -o -name a2 \) -print0 |
  xargs -0 -I{} find {} -type d -name w -o -name s
./a1/w
./a2/s