我们如何使用通配符表达式匹配扩展名较少的文件?

时间:2015-11-27 11:55:42

标签: shell wildcard

我的网络目录中包含扩展名且没有扩展名的文件

foo
bar
me.php

如何使用通配符表达式匹配最后没有扩展名的文件?

我尝试了很多方法,但都失败了

1)

*.*

它返回所有带扩展名

的文件

2)

*[a-z]*

没有返回

然后我试图否定点,以便它可以返回没有扩展名的文件

*[a-z][!.]*

它也没有用。

有没有办法解决它?

2 个答案:

答案 0 :(得分:2)

我建议在shell中激活extglob函数。

您可以通过以下方式执行此操作:

shopt -s extglob

这将为您提供更强大的匹配模式。

然后你可以得到你想要的东西:

ls !(*.*)

然后使用

将其关闭
shopt -u extglob

答案 1 :(得分:2)

除了extglob之外,您还可以使用此find命令列出当前目录中没有任何扩展名的所有文件:

find . -regex '\./[^.]*$' -maxdepth 1 -type f