查找名称以大写字母开头的文件


14

我正在尝试查找所有名称以大写字母开头的文件。我尝试使用以下命令:

find . -type f -regex '.*\/[A-Z][^/]*'

它只查找小写字母的路径。以下作品:

find . -type f -regex '.*\/[ABCDEFGHIJKLMNOPQRSTUVWXYZ][^/]*'

和:

find . -type f | grep '.*\/[A-Z][^/]*$'

我尝试了的所有不同选项regextype,但结果相同。

为什么在其中find包含小写字母[A-Z]?我以为正则表达式是[a-zA-Z]。有什么办法可以指定仅大写字母的范围find吗?


5
LC_ALL=C find ...
mikeserv 2014年

这样可行。你能解释为什么吗?
Karl Bielefeldt 2014年

3
我可以尝试,但是您可能会错过这一点
mikeserv 2014年

1
为什么要转义斜线(\/)?您还在使用()找到什么find --version
Cristian Ciupitu 2014年

1
/仅当您将转义用作分隔符时才需要转义s/foo\/bar/foobar/。(但通常您可以使用其他定界符:s#foo/bar#foobar#。)
deltab 2014年

Answers:


35

您无需使用-regex。您可以-name改用。

find . -type f -name "[[:upper:]]*"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.