You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取目录下名称全为大写的子文件夹列表 现有find命令执行无效

问题原因

你使用的命令失效是因为 find 的 -name 参数默认遵循 shell 通配符规则,通配符中 + 不具备正则表达式里「匹配前面规则1次及以上」的语义,你写的 [A-Z]+ 只会匹配名称为「单个大写字母+加号」的文件夹,自然无法得到全大写字母命名的文件夹列表。

正确实现方案

方案1:GNU find(绝大多数Linux发行版适用)

直接使用扩展正则匹配+格式化输出即可一步得到结果:

find /path/to/your/target_dir -maxdepth 1 -type d -regextype posix-extended -regex '.*/[A-Z]+' -printf "%f\n"

参数说明:

  • -regextype posix-extended 启用扩展正则规则,支持 + 匹配语法
  • -regex '.*/[A-Z]+' 匹配全路径末尾为纯大写字母的文件夹
  • -printf "%f\n" 直接输出文件夹纯名称,不带前缀路径,也没有末尾斜杠

方案2:BSD find(macOS/BSD系统适用)

BSD 版本的 find 正则规则略有不同,可搭配 basename 处理输出:

find /path/to/your/target_dir -maxdepth 1 -type d -regex '.*/[A-Z][A-Z]*' -exec basename {} \;

方案3:Shell 原生glob匹配(无需依赖find,Bash/Zsh适用)

# 先启用必要的shell选项
shopt -s extglob nullglob
# 遍历匹配并输出纯名称
for d in /path/to/your/target_dir/+([A-Z])/; do
  basename "${d%/}"
done

所有方案中,把 /path/to/your/target_dir 替换为你要查询的目标目录即可,查询当前目录直接替换为 .。

内容的提问来源于stack exchange,提问作者wsdzbm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:24:07