如何按目录和文件名组合模式搜索文件

aki*_*adu 3 command-line find

我想在文件系统中查找所有目录和子目录中名为“元数据”的所有 .xml 文件。有没有一种方法可以通过类似的模式进行搜索

find . -name  */metadata/*.xml" (mixing find command and Gradle paralance)
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 5

$ find / -path "*/metadata/*" -name "*.xml"
Run Code Online (Sandbox Code Playgroud)

或者,更短(因为*与 一起使用时匹配超过路径名中的斜杠-path),

$ find / -path "*/metadata/*.xml"
Run Code Online (Sandbox Code Playgroud)

注意:我使用的/是你所说的“在文件系统中”,我将其解释为“任何地方”。

或者,使用locate(只会查找所有用户都可以访问的文件):

$ locate "/metadata/" | grep '\.xml$'
Run Code Online (Sandbox Code Playgroud)

(这有点像find上面第一个)