使用 find 匹配以数字开头的文件名

use find to match filenames starting with number

我正在尝试查找文件名中只有数字的文件。比如我有文件123.txt、45.doc、alpha_123、beta_123.txt、45和123,我只想匹配文件45和123。我试过了findgrep 或它们的组合的各种选项,但没有任何效果如我所愿或给我语法错误。

还有我只能匹配空文件的可能性吗?我尝试使用选项 "empty" 但也没有成功,尽管这可能是由于使用了错误的语法。

find . -name "[0-9]*" 有效,因为它找到了文件名中带有数字的文件,例如文件 123 和文件 45,但它也找到了带有一个扩展,例如 123.txt 和 45.doc,不幸的是这不是我想要的。

根据下面的建议(因为我的原始问题在答案被 posted 后进行了大量编辑),完全符合我要求的是 $ find . -type f -name '[[:digit:]]*' | grep -E '.*/[0-9]+$'.

对于最初的 misleading/ambiguous post,我深表歉意,我希望编辑后的版本对其他同样对如何使用 find 与正则表达式感到困惑的用户有所帮助。

或者这个:

$ find -E .  -type f -regex '.*/[[:digit:]]+$'

或者这样:

$ find .  -type f -name '[[:digit:]]*' | grep -E '.*/[0-9]+$'

努力查找名称完全由数字组成(即没有扩展名)的文件