如何列出目录下以A*/B*/C*开头的文件夹及子文件夹路径?命令异常排查
解决方法:查找a/b/c开头的所有文件夹(含子文件夹)
嘿,你的当前命令完全没踩对需求点啊!ls -l | egrep d是在找输出里带字母d的行,既没匹配a/b/c开头的目录,也没法递归查找子文件夹,肯定达不到预期效果。我给你几个靠谱的方案:
最推荐:用find命令(跨shell通用)
find是处理这类文件搜索场景的标准工具,能完美递归查找,还能准确匹配目录:
只显示完整路径
find /你的目标目录路径 -type d -name "[abc]*"
比如要搜索当前目录,就把路径换成.:
find . -type d -name "[abc]*"
参数解释:
-type d:只筛选文件夹(目录),排除普通文件-name "[abc]*":匹配以a、b、c中任意一个开头的名称,[abc]是字符类,*匹配后续任意内容
显示详细信息(类似ls -l效果)
如果需要看权限、大小这些细节,加-ls参数就行:
find . -type d -name "[abc]*" -ls
Bash专属:用递归Glob(需Bash 4.0+)
如果你用的是Bash(大部分Linux默认shell),可以开启递归匹配功能:
- 先开启
globstar选项(如果没开的话):
shopt -s globstar
- 然后用
ls直接匹配递归目录:
ls -ld {a,b,c}**/
参数解释:
-ld:只显示目录本身的信息,不会展开目录里的内容{a,b,c}**/:{a,b,c}匹配a/b/c开头的名称,**/表示递归匹配所有子目录
避坑提醒
- 永远别用
ls | grep这种方式处理文件/目录,遇到带空格、特殊字符的目录名会直接出错,find和shell glob才是正确姿势 - 如果你的目标目录不是当前目录,记得把命令里的
.换成实际路径
内容的提问来源于stack exchange,提问作者deltofukno
相关产品推荐
相关产品推荐

