列出具有指定深度的文件夹的所有子目录



我想列出一个文件夹的所有子目录,它们的深度只有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级深层目录

最新更新