我正在尝试查找所有命名为 3 个数字 (###) 的文件夹,并且有一个命名为 2 个数字 (##) 的子目录。
我尝试过:
我解决这个问题的方法是使用 find
命令。我会在哪里寻找这样的模式:
### (folder name)
-> ## (subdirectory name)
由于深度必须是两个,所以我使用了-maxdepth 2
为了查找命名模式,我使用 '[0-9][0-9][0-9]'
来获取主文件夹名称,并使用 '[0-9][0-9]'
来获取子目录的名称。
把这些放在一起,我想出了这个:
#!/bin/sh
for f in $(find . -maxdepth 2 -name '[0-9][0-9][0-9]' -type d); do
echo $f
done
遗漏的部分是我似乎无法弄清楚的部分。如何将子目录的命名模式添加到 find 命令中,以便它找到与模式 ### 作为主文件夹名称和 ## 作为子目录名称匹配的所有文件夹。
如果有人能给我一个关于这个问题的提示,那将不胜感激。
你可以直接使用 glob 执行此操作,因为它们可以跨越目录:
echo [0-9][0-9][0-9]/[0-9][0-9]/