我想列出文件夹的所有子目录,其深度仅为2.到目前为止,通过查看以前的问题和用户的答案,我来到这个代码,
i=0
for directory in `find ./input -maxdepth 3 -type d -mindepth 2 `
do
arr[i]=$directory
let "i += 1"
echo $directory
done
我在Fedora机器上运行此代码,它给了我正确的答案,但是当我在centOS中运行它时,它无效。实际上-maxdepth有效,但不是-mindepth。
在Fedora中更具体,输出如下:
- ./input/Staphylococcus / 200
- ./input/Staphylococcus / 50
- ./input/Staphylococcus / 100
- ./input/Staphylococcus / 150
- /输入/ Neisseria_meningitidis / 200
- /输入/ Neisseria_meningitidis / 50
- /输入/ Neisseria_meningitidis / 100
- /输入/ Neisseria_meningitidis / 150
这是我的欲望输出,在centOS中输出包含这些列表以及其他一些深度较长的目录。
另一个有趣的事情是我跑
./ input -mindepth 2 -maxdepth 2 -type d
在我的命令提示符屏幕中,它再次给出了正确的答案,但不是在bash文件中。
无论我搜索什么,我都很困惑,我没有为mindepht旗帜找到任何替代品。
答案 0 :(得分:2)
它应该可以工作,但如果由于某种原因它不起作用,那么你可以使用这个glob模式:
printf "%s\n" ./input/*/*/
./input/*/*/
将匹配input
目录