red*_*dot 23

似乎否定 glob 模式并不为人所知。所以你可以使用:

find . -name "[!.]*"
Run Code Online (Sandbox Code Playgroud)


Jar*_*vin 16

我在这里找到了这个:

find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
Run Code Online (Sandbox Code Playgroud)

  • 不,它不会:/ 但是 `\( ! -path '*/.*' \)` 会。 (5认同)

小智 13

这不能回答您的问题,但是对于查找非隐藏文件的任务,我喜欢让 find 查找所有文件,然后使用 grep 进行过滤。

find . -type f | grep -v '/\.'
Run Code Online (Sandbox Code Playgroud)

与您的方法类似,但可能更简单一些。


ken*_*orb 8

尝试以下find用法:

find . -type f -not -path '*/\.*'
Run Code Online (Sandbox Code Playgroud)

这将忽略所有隐藏文件(以点开头的文件和目录)。