我想列出一个文件夹的所有子目录,它们的深度只有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中,输出如下:
-/输入/葡萄球菌/200
-/输入/葡萄球菌/50
-/输入/葡萄球菌/100
-/输入/葡萄球菌/150
-/输入/奈瑟菌_meningitis/200
-/输入/奈瑟菌_meningitis/50
-/输入/奈瑟菌_meningitis/100
-/输入/奈瑟菌_meningitis/150
这是我想要的输出,在centOS中,输出包含这些列表以及其他一些深度更长的目录。
另一件有趣的事情是当我运行时
/输入-mindepth 2-最大深度2-类型d
在我的命令提示符屏幕中,它再次给出了正确的答案,但在bash文件中没有。
我真的很困惑,无论我搜索了什么,我都没有找到任何mindepht flag的替代品。
它应该可以工作,但如果由于某种原因无法工作,那么您可以使用以下glob模式:
printf "%sn" ./input/*/*/
./input/*/*/
将匹配input
目录内的所有2级深层目录