获取仅以大写字母命名的文件夹下的子文件夹

get subfolders under a folder named with uppercases only

我只想获取名称为大写的子文件夹列表(只有文件夹名称,没有前导 pardir 或尾部 /)。

我尝试了 find . -maxdepth 1 -type d -name '[A-Z]+' 但它不起作用。

-name operator does not use regular expressions as you might expect. Instead it using "wildcards" similar to the bash wildcard system as described here.

您可能想要使用文档 Full Name Patterns 部分中描述的 -regex 运算符。使用这个你应该有一个像这样的命令:

find . -maxdepth 1 -regex '\./[A-Z]+'

您可以使用 Run Commands 部分中描述的选项进行任何其他路径操作。

如果你想在 Regex 中使用大写名称,请使用 [:upper:] class 名称:

find . -maxdepth 1 -type d -regextype posix-extended -regex './[[:upper:]]+'

或使用 Bash 的 extglob 扩展 Globbing:

shopt -s extglob
printf %s\n +([[:upper:]])/