我想列出名称以大写字母或特定数字(例如 3)开头的文件。
我尝试过类似的东西
ls ~/etc/[[:upper:]][3].*
但无法正常工作。
答案1
您的模式与主目录中的子目录中以大写字母开头、后跟字符和点的~/etc/[[:upper:]][3].*
任何名称相匹配。etc
3
子模式仅[3]
匹配3
, ,我假设您已将其用作.*
正则表达式,可能吗?该.*
正则表达式或多或少与*
文件名通配模式中的相同(shell 不使用正则表达式进行通配)。作为通配模式,.*
将匹配以点开头的子字符串。
~/etc/A3.txt
例如,路径名将与您的原始模式匹配,而~/etc/A3
不会匹配,因为它缺少3
.
如果您想匹配~/etc
以大写字母或字符 开头的文件3
,请使用模式
~/etc/[[:upper:]3]*